nginxconfiguration多个主机

我正在使用nginx来pipe理不同域上的多个站点。

我刚刚更新了这一切,以确保所有到mainsite.com的stream量都被redirect到https(明显有一个针对mainsite.com的工作证书),但是目前其他网站都使用http。

然而,如果有人访问https://othersite.com ,他们被路由到https://mainsite.com ,不匹配的证书给他们一个警告,如果他们select继续前进,他们被发送到django服务器在mainsite.com上。 然后,因为othersite.com不是该网站上的允许主机,则会失败。

我想我需要的是一些捕获所有的HTTPSstream量,这是不会 mainsite.com重新路由到http,但我已经读过,这是不可能的。

有任何想法吗?

编辑:这是我目前的configuration粗略副本: –

default.conf

server { listen 80 default_server; return 444; location / { root /usr/share/nginx/html; index index.html index.htm; } } 

mainsite.conf

 server { listen 80; server_name www.mainsite.com mainsite.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name www.mainsite.com mainsite.com; ssl_certificate /etc/letsencrypt/live/mainsite.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mainsite.com/privkey.pem; include /etc/nginx/sites-available/ssl.inc; } 

您的端口443没有默认服务器块,因此端口443上的所有请求都将转到您已configuration的一个站点。 为端口443创build一个适当configuration的默认服务器,只要它们可以解决问题就可以解决 – 因为根据你的阅读build议,在TLS连接被协商之前,你不能发送redirect,直到证书被接受。

womble是对的。 https://serverfault.com/a/838808/351483

您可以将443服务器块添加到默认configuration。 如果othersite.com不需要HTTPS,那么你可以给http 80服务器块redirect。