Nginx Konfiguration
Hallo, ich nutze als Webserver Nginx, hier hat mir Certbot einige Einstellungen automatisch gesetzt und ich habe einige ergänzt.
Meine alte Konfig sah so aus:
Das ganze habe ich aufgeräumt und ergänzt:
Nun wollte ich aus den 2 server Blöcken 1 machen, aber sobald ich das mache geht nix mehr.
Ich möchte die Umleitung von http auf https haben und gleichzeitig möchte ich http auf Port 80 verbieten, das macht ja der letzte Block mit return 404.
Edit: ich glaube ich hatte einen Denkfehler: http / https müssen immer ein eigenen "server" sein.
Kann mir das Jemand bestätigen ?
Meine alte Konfig sah so aus:
server {
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
#
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name ich.de www.ich.de;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
# pass PHP scripts to FastCGI server
#
#location ~ \.php$ {
# include snippets/fastcgi-php.conf;
#
# # With php-fpm (or other unix sockets):
# fastcgi_pass unix:/run/php/php7.4-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
listen [::]:443 ssl http2 ipv6only=on; # managed by Certbot
listen 443 ssl http2; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/ich.de/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/ich.de/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
}
# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
# listen 80;
# listen [::]:80;
#
# server_name example.com;
#
# root /var/www/example.com;
# index index.html;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}
server {
if ($host = www.ich.de) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = ich.de) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 default_server;
listen [::]:80 default_server;
server_name ich.de www.ich.de;
return 404; # managed by Certbot
}
Das ganze habe ich aufgeräumt und ergänzt:
server {
root /var/www/html;
index index.html;
server_name ich.de www.ich.de;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
listen [::]:443 ssl http2 ipv6only=on;
listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/ich.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ich.de/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Permissions-Policy "interest-cohort=()" always;
}
server {
if ($host = www.ich.de) {
return 301 https://$host$request_uri;
}
if ($host = ich.de) {
return 301 https://$host$request_uri;
}
listen 80 default_server;
listen [::]:80 default_server;
server_name ich.de www.ich.de;
return 404;
}
Nun wollte ich aus den 2 server Blöcken 1 machen, aber sobald ich das mache geht nix mehr.
Ich möchte die Umleitung von http auf https haben und gleichzeitig möchte ich http auf Port 80 verbieten, das macht ja der letzte Block mit return 404.
Edit: ich glaube ich hatte einen Denkfehler: http / https müssen immer ein eigenen "server" sein.
Kann mir das Jemand bestätigen ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 670637
Url: https://administrator.de/forum/nginx-konfiguration-670637.html
Ausgedruckt am: 10.01.2025 um 22:01 Uhr
1 Kommentar