nginx将多个域的所有https请求redirect到一个域

我使用nginx服务器块在服务器上托pipe多个域。 出于某种原因,当使用https请求其他域时,它总是加载一个特定的网站。

  • domain1.com /var/www/domain1.com
  • domain2.com /var/www/domain2.com …

当我键入http://domain1.com这加载正确,但是当我键入https://domain1.com它服务于/var/domain2.com

下面是我的nginxconfigurationdomain2服务器块有ssl。 我猜测listen 443 ssl default_server; 在第三个服务器块是罪魁祸首,但不知道如何进行。 我试图从那里删除default_server,但打破了网站。

如何configurationnginxconfiguration,以便其他域在使用https请求时不会出现错误的网站。 我感谢任何帮助。

 # Default server configuration # server { listen 80; listen [::]:80; server_name domain2.com www.domain2.com; return 301 https://www.domain2.com$request_uri; } server { listen 443; listen [::]:443; server_name domain2.com; return 301 https://www.domain2.com$request_uri; } server { # SSL configuration listen 443 ssl default_server; listen [::]:443 ssl default_server; server_name www.domain2.com; include snippets/ssl-domain2.com.conf; include snippets/ssl-params.conf; # Self signed certs generated by the ssl-cert package # Don't use them in a production server! # # include snippets/snakeoil.conf; root /var/www/domain2.com; # Add index.php to the list if you are using PHP index index.php index.html index.htm index.nginx-debian.html; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ /index.php?$args; } ...