15

尝试将 Nginx 设置为 https 服务器的负载均衡器。上游通过配置了 SSL 证书的端口 443 提供服务。如何配置 Nginx,使 SSL 证书配置只在上游服务器上处理,而不在 Nginx 服务器上处理?

4

3 回答 3

14

您需要使用上游模块反向代理模块。要反向代理到 https 上游,请使用此

proxy_pass  https://backend;

其中后端是上游块。

但是,如果我这样做,我会在 nginx 服务器上终止 ssl,并让上游应用程序服务器做他们擅长的事情:提供内容,而不是担心 ssl 加密/解密开销。使用SSL 模块在 nginx 上设置 ssl 终止也非常简单。这里也给出了一个很好的案例研究。

于 2013-03-14T02:44:04.880 回答
5

根据https://www.nginx.com/resources/admin-guide/nginx-tcp-ssl-upstreams/ (1.9.4+)现在看来可能

于 2016-01-06T07:49:03.083 回答
4

据我阅读Nginx 论坛上的相关讨论,这是不可能的,因为 Nginx 无论如何都需要终止上游 SSL 连接。如果你坚持使用 Nginx,你只需要复制 SSL 配置并使证书和密钥对 Nginx 可用。

我链接的讨论得出结论,HAProxy 是 SSL 上游直通的更好工具。这是我发现的有关为此目的配置 HAProxy的相关帖子。因为我的 HAProxy 经验为零,我无法总结它的配置或解决方案的一般可行性,将其留给读者。

更新

从 1.9.2 Nginx 开始支持 HAProxy 的代理协议

于 2015-04-17T17:27:51.230 回答