【问题标题】:Nginx load balance with upstream SSL使用上游 SSL 的 Nginx 负载平衡
【发布时间】:2013-03-01 22:53:38
【问题描述】:

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

【问题讨论】:

  • 能否请您发布解决它的配置?

标签: nginx ssl


【解决方案1】:

您需要使用Upstream moduleReverse Proxy module。要反向代理到 https 上游,请使用此

proxy_pass  https://backend;

其中后端是上游块。

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

【讨论】:

  • 任何示例配置?我在浏览器中收到“ssl_error_rx_record_too_long”,而 NGINX 错误日志中没有任何内容。
  • 这个 SO 答案能解决您的问题吗? serverfault.com/questions/497430/…
  • 不,我试过了。该示例中的配置文件定义了我没有做的 SSL 证书(因为 NGINX 服务器上没有)。
  • 不尝试负载均衡,而是纯粹代理到一个后端时,上游模块是否也需要?我可以简单地拼出proxy_pass https://example.com吗?
  • OP 要求 "...不在 Nginx 服务器上",因此他想要的是 SSL pass-through;您建议上游 SSL 反向代理;在哪里也必须在 Nginx 上设置 SSL 证书。
【解决方案2】:

【讨论】:

    【解决方案3】:

    据我从 Nginx 论坛上的reading relevant discussion 了解到,这是不可能的,因为 Nginx 无论如何都需要终止上游 SSL 连接。如果您坚持使用 Nginx,那么您只需要复制 SSL 配置并为 Nginx 提供证书和密钥。

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

    更新

    Nginx 从 1.9.2 开始支持 HAProxy 的proxy protocol

    【讨论】:

      猜你喜欢
      • 2016-11-10
      • 1970-01-01
      • 2016-02-21
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 2018-09-24
      • 1970-01-01
      相关资源
      最近更新 更多