Nginx HTTPS-Umleitungsschleife mit mehreren Domänen

Nginx HTTPS-Umleitungsschleife mit mehreren Domänen

Ich weiß, dass es andere Fragen zu ähnlichen Themen gibt, aber ich kann nirgendwo eine Lösung finden, die mein spezielles Problem löst. Der Unterschied besteht hier in mehreren Domänen mit unterschiedlichen Websites.

Ich habe Nginx mit mehreren Domänen eingerichtet: example1.comund example2.com. Es gibt auch die "Standard"-Hostdateien mit den„Willkommen bei Nginx!“ Standardwebseite.

Ich habe einige verschiedene Konfigurationen ausprobiert, darunter:

# 1
server {
   server_name example2.com www.example2.com;
   listen 80;
   return 301 https://example2.com$request_uri;
}
server {
    server_name example2.com www.example2.com;
    listen 443 default_server;

    ssl_certificate /etc/letsencrypt/live/example2.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/example2.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

# 2
server {
    server_name example2.com www.example2.com;
    listen 80;
    listen 443

    return 301 https://example2.com$request_uri;

    ssl_certificate /etc/letsencrypt/live/example2.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/example2.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

}

1ergibt:

  • http://Beispiel2.com leitet weiter zuhttps://Beispiel2.com zeigt die Seite „Willkommen“
  • http://Beispiel1.com leitet weiter zuhttps://Beispiel2.com zeigt die Seite „Willkommen“
  • https://Beispiel1.com zeigt den tatsächlichen Inhalt des Beispiels1.com

2ergibt:

  • http://Beispiel2.com mit einer Umleitungsschleife
  • https://Beispiel2.com mit einer Umleitungsschleife
  • http://Beispiel1.com leitet weiter zuhttp://Beispiel2.com mit einer Umleitungsschleife
  • https://Beispiel1.com zeigt den tatsächlichen Inhalt des Beispiels1.com

example2.comIch kann den Inhalt nicht in den Standardordner „Willkommen“ legen, da dies sonst Auswirkungen hätte example1.com.

Antwort1

Dank Richard Smith weiß ich jetzt, wie ich es vermasselt habe. Ich hatte die Stammverzeichnisse nicht richtig angegeben. Hier sind die richtigen Dateien, falls sie jemand anderem helfen können:

# example2.com.conf:
server {
    server_name example2.com www.example2.com;
    listen      80;
    return      301 https://example2.com$request_uri;
    # What I was missing:
    root            /var/www/example2-com;
}
server {
    server_name     example2.com www.example2.com;
    listen      443 ssl;# default_server;

    # What I was missing:
    root            /var/www/example2-com;

    ssl_certificate /etc/letsencrypt/live/example2.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/example2.com/privkey.pem;
    include         /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam     /etc/letsencrypt/ssl-dhparams.pem;

}

# example1.com.conf:
server {
    server_name example1.com www.example1.com;
    listen      80;
    return      301 https://example1.com$request_uri;

    # What I was missing:
    root            /var/www/example1-com;
}
server {
    server_name     nerd.ink www.nerd.ink;
    listen      443 ssl; # default_server;

    # What I was missing:
    root            /var/www/example1-com;

    ssl_certificate /etc/letsencrypt/live/example1.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/example1.com/privkey.pem;
    include         /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam     /etc/letsencrypt/ssl-dhparams.pem;
}

verwandte Informationen