Hallo Leute,
ich bin neu hier im Forum und hatte mich ursprünglich wegen eines anderen Problems angemeldet, welches ich jedoch lösen konnte. Jetzt komm ich aber nicht mehr so wirklich weiter und ich hab mich schon totgegoogelt. Ich muss dazu sagen, dass ich in die Welt von Linux gerade erst eingestiegen und daher noch nicht fit bin in diesem Thema. Allerdings macht das schon sehr viel Spaß einen Server zu betreiben und selbst zu verwalten.😀
Ich betreibe einen Homeserver, auf dem eine Nextcloud läuft. Eingerichtet habe ich sie mit folgender Anleitung: https://www.c-rieger.de/nextcloud-installationsanleitung/ . Ursprünglich war die Cloud unter "Domain.de" erreichbar. Mithilfe dieser Anleitung: https://www.c-rieger.de/nextcloud-in-einem-unterordner-betreiben/ habe ich es geschafft, Nextcloud unter Domain.de/Nextcloud erreichbar zu machen.
Mein Problem ist jetzt folgendes: Die Nextcloud läuft 1A und ist auch unter domain.de/nextcloud erreichbar ABER ich schaffe es nicht eine Webseite auf die Hauptdomain zu legen, ich bekomme dann beim Aufruf der Domain eine 403-Forbidden Meldung, die ich nicht gefixt bekomme. Das Anlegen einer neuen .config für die Webseite löst eine Warnung in
nginx -t
aus: "duplicated server_name". Der eigentliche Test der Konfiguration wird mit "successful" quittiert. Ich muss als Servername meine Domain eintragen, unter der das Ganze erreichbar sein soll oder nicht? Daher würde ich bei allen Konfigurationen als server_name meine Domain eintragen, denn es soll ja alles über genau diese Adresse erreichbar sein, nur halt mit Unterordnern, so wie es mit der Cloud ja schon funktioniert. Allerdings hab ich da wohl grundlegend die Struktur noch nicht begriffen, Schande über mich. 😀
Der Nextcloud-Ordner liegt in /var/www/nextcloud, die Webseite, die auf die Domain soll, liegt in /var/www/domain/
Ich habe in /etc/nginx/conf.d/ folgende Konfigurationen:
nextcloud.conf (Meine Domain hab ich jeweils mit domain.de ersetzt)
server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name domain.de; # Self Signed Certificates #ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; #ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; #ssl_trusted_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; # bestehen schon Let's Encrypt Zertifikate, dann verwenden Sie stattdessen diese Zeilen: ssl_certificate /etc/letsencrypt/rsa-certs/fullchain.pem; ssl_certificate_key /etc/letsencrypt/rsa-certs/privkey.pem; ssl_certificate /etc/letsencrypt/ecc-certs/fullchain.pem; ssl_certificate_key /etc/letsencrypt/ecc-certs/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/ecc-certs/chain.pem; ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_protocols TLSv1.3 TLSv1.2; ssl_ciphers 'TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384'; ssl_ecdh_curve X448:secp521r1:secp384r1; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_stapling_verify on; root /var/www; expires 1m; location = /robots.txt { allow all; log_not_found off; access_log off; } location ^~ /.well-known { location = /.well-known/carddav { return 301 /nextcloud/remote.php/dav/; } location = /.well-known/caldav { return 301 /nextcloud/remote.php/dav/; } location /.well-known/acme-challenge { try_files $uri $uri/ =404; } location /.well-known/pki-validation { try_files $uri $uri/ =404; } return 301 /nextcloud/index.php$request_uri; } location ^~ /nextcloud { client_max_body_size 50G; fastcgi_buffers 64 4K; gzip on; gzip_vary on; gzip_comp_level 4; gzip_min_length 256; gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-f>add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always; add_header Permissions-Policy "interest-cohort=()"; add_header Referrer-Policy "no-referrer" always; add_header X-Content-Type-Options "nosniff" always; add_header X-Download-Options "noopen" always; add_header X-Frame-Options "SAMEORIGIN" always; add_header X-Permitted-Cross-Domain-Policies "none" always; add_header X-Robots-Tag "none" always; add_header X-XSS-Protection "1; mode=block" always; fastcgi_hide_header X-Powered-By; index index.php index.html /nextcloud/index.php$request_uri; location ^~ /nextcloud/apps/rainloop/app/data { deny all; } location = /nextcloud { if ( $http_user_agent ~ ^DavClnt ) { return 302 /nextcloud/remote.php/webdav/$is_args$args; } } location ~ ^/nextcloud/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; } location ~ ^/nextcloud/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; } location ~ \.php(?:$|/) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; rewrite ^/nextcloud/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /nextcloud/index.php$request_uri; set $path_info $fastcgi_path_info; try_files $fastcgi_script_name =404; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $path_info; fastcgi_param HTTPS on; fastcgi_param modHeadersAvailable true; fastcgi_param front_controller_active true; fastcgi_pass php-handler; fastcgi_intercept_errors on; fastcgi_request_buffering off; fastcgi_read_timeout 3600; fastcgi_send_timeout 3600; fastcgi_connect_timeout 3600; } location ~ \.(?:css|js|svg|gif|png|jpg|ico)$ { try_files $uri /nextcloud/index.php$request_uri; expires 6M; access_log off; } location ~ \.woff2?$ { try_files $uri /nextcloud/index.php$request_uri; expires 7d; access_log off; } location /nextcloud/remote { return 301 /nextcloud/remote.php$request_uri; } location /nextcloud { try_files $uri $uri/ /nextcloud/index.php$request_uri; } } }
http.conf
upstream php-handler { server unix:/run/php/php8.0-fpm.sock; } server { listen 80 default_server; listen [::]:80 default_server; server_name domain.de; root /var/www; location ^~ /.well-known/acme-challenge { default_type text/plain; root /var/www/letsencrypt; } location / { return 301 https://$host$request_uri; } }
Wie bekomme ich jetzt meine Seite auf die Hauptdomain? Falls noch irgendwelche Infos benötigt werden, dann bitte Bescheid geben. ☺
Liebe Grüße Schleudi