如何捕获对 http:// 的请求和 https://在 nginx 中?

如何捕获对 http:// 的请求和 https://在 nginx 中?

我在 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

相关内容