我在 nginx 中有几个网站,每个网站都有自己的 server{} 块,它们的域名在 server_name 指令中定义。其中一个网站还有一个 https server{} 块。它们都在同一个 IP 上。
如何创建服务器块来捕获请求http://1.2.3.4
和 https://1.2.3.4
,但不是任何域名?我尝试创建“默认”服务器的变体,但如果 nginx 看到默认 https 块,它只会将该块用于所有 https 连接,包括具有自己的 https 服务器块的网站。
Ubuntu 12.04 上的 nginx 1.4.2。
谢谢你的帮助。
答案1
nginx vhost 偏好描述如下: http://nginx.org/en/docs/http/request_processing.html#mixed_name_ip_based_servers
只要一个 IP 只有一个 SSL 网站,default_server 设置就可以正常工作:
server {
listen x.x.x.x:443;
}
nginx 目前无法正确支持 SNI,因此无法为单个 IP 地址指定多个 SSL 证书: http://nginx.org/en/docs/http/configuring_https_servers.html#compatibility