我有一些 Nginx 服务器共享它们的配置,因为它们位于负载均衡器池中。
所以我对所有服务器都有一个独特的配置,所有服务器都在监听 *:80 和 *:443 地址。
但这导致我在不支持 SNI(如 Windows XP)的客户端上的 SSL 证书出现一些问题。
为了解决这个问题,我应该为每个 SSL 网站指定一个不同的 IP 地址,但这当然不同于池中的每个服务器。
你有什么建议吗?
如果 Nginx 无法绑定其中一个,我能否在同一服务器中指定多个 IP 而不会导致错误?
非常感谢!
我有一些 Nginx 服务器共享它们的配置,因为它们位于负载均衡器池中。
所以我对所有服务器都有一个独特的配置,所有服务器都在监听 *:80 和 *:443 地址。
但这导致我在不支持 SNI(如 Windows XP)的客户端上的 SSL 证书出现一些问题。
为了解决这个问题,我应该为每个 SSL 网站指定一个不同的 IP 地址,但这当然不同于池中的每个服务器。
你有什么建议吗?
如果 Nginx 无法绑定其中一个,我能否在同一服务器中指定多个 IP 而不会导致错误?
非常感谢!
不确定您正在运行什么操作系统,因为您没有说明这一点,但如果它是某种 Linux 风格:允许进程绑定/侦听/在“非本地”IP 上。为此:
echo 1 > /proc/sys/net/ipv4/ip_nonlocal_bind
如果你不想让它持久化,也就是“重新启动”,你必须把它放在“某个地方”。对于基于 Debian 的发行版,这将是例如
/etc/sysctl.conf
:在里面,放一行阅读并执行
sysctl -p
或重新启动。这是您可能更喜欢进行集中式 SSL 终止的实例。无需让您的
nginx
实例完全担心 SSL,只需让它们执行 http 并将 SSL 终止集中在一个haproxy
盒子或冗余负载均衡器(如 A10 或 Netscaler)上。然后,您的代理/LB 会将连接重定向到这些nginx
盒子。 本文解释了如何让 SSL 在 haproxy 上运行。