具有多個網域的 Nginx HTTPS 重新導向循環

具有多個網域的 Nginx HTTPS 重新導向循環

我知道還有其他具有類似主題的問題,但我無法在任何地方找到解決我的特定問題的解決方案。這裡的區別是具有不同站點的多個網域。

我已經為 Nginx 設定了多個域:example1.comexample2.com.還有“預設”主機文件,其中包含“歡迎來到 Nginx!”預設網頁

我嘗試了幾種不同的配置,包括:

# 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;

}

1結果是:

  • http://例子2.com 重新導向至https://例子2.com 顯示「歡迎」頁面
  • http://例子1.com 重新導向至https://例子2.com 顯示「歡迎」頁面
  • https://例子1.com 顯示範例的實際內容1.com

2結果是:

  • http://例子2帶有重定向循環的 .com
  • https://例子2帶有重定向循環的 .com
  • http://例子1.com 重新導向至http://例子2帶有重定向循環的 .com
  • https://例子1.com 顯示範例的實際內容1.com

我無法將內容放入example2.com預設的「歡迎」資料夾中,否則會影響example1.com.

答案1

感謝理查史密斯,我知道我是如何把事情搞砸的。我沒有正確包含根位置。這是正確的文件,以防對其他人有幫助:

# 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;
}

相關內容