【发布时间】:2013-03-01 22:53:38
【问题描述】:
尝试将 Nginx 设置为 https 服务器的负载均衡器。上游通过配置了 SSL 证书的端口 443 提供服务。如何配置Nginx,使SSL证书配置只在上游服务器上处理,在Nginx服务器上不处理?
【问题讨论】:
-
能否请您发布解决它的配置?
尝试将 Nginx 设置为 https 服务器的负载均衡器。上游通过配置了 SSL 证书的端口 443 提供服务。如何配置Nginx,使SSL证书配置只在上游服务器上处理,在Nginx服务器上不处理?
【问题讨论】:
您需要使用Upstream module 和Reverse Proxy module。要反向代理到 https 上游,请使用此
proxy_pass https://backend;
其中后端是上游块。
但是,如果我这样做,我会在 nginx 服务器上终止 ssl,并让上游应用程序服务器做他们擅长的事情:提供内容,而不是担心 ssl 加密/解密开销。使用SSL module 在 nginx 上设置 ssl 终止也非常简单。 here也给出了一个很好的案例研究。
【讨论】:
proxy_pass https://example.com吗?
根据https://www.nginx.com/resources/admin-guide/nginx-tcp-ssl-upstreams/ (1.9.4+) 看来现在可能
【讨论】:
据我从 Nginx 论坛上的reading relevant discussion 了解到,这是不可能的,因为 Nginx 无论如何都需要终止上游 SSL 连接。如果您坚持使用 Nginx,那么您只需要复制 SSL 配置并为 Nginx 提供证书和密钥。
我链接的讨论得出结论,HAProxy 是 SSL 上游直通的更好工具。这是relevant post 我发现有关为此目的配置HAProxy 的信息。因为我的 HAProxy 经验为零,所以我无法总结它的配置或解决方案的一般可行性,留给读者看。
Nginx 从 1.9.2 开始支持 HAProxy 的proxy protocol。
【讨论】: