Nginx 作为提供 HTTPS 服务的反向代理

Nginx 作为提供 HTTPS 服务的反向代理

我有一些 django 和 ruby​​ 应用程序,并且我有一台主机作为反向代理重定向到包含这些应用程序的从属机器。在这些应用程序上设置中间件,以便它们能够提供 https 服务。每台机器都运行自己的 ngnix。

我是否也在这些单独的 ngnix 上配置 https,还是只在主代理机器上进行更改?谢谢。

答案1

是的,您可以使用 nginx 反向代理到后端(或中端)的应用程序服务器。

您可以使用网关或 nginx 反向代理来处理 ssl。就我个人而言,除非一切都要在 ssl 下运行,否则我会在 nginx 级别提供 ssl。

这并不是说您不应该执行负载和性能测试来查看哪种方法在您的特定环境中效果最好;您绝对应该尝试不同的配置来查看哪种方法最适合您!

答案2

如果您信任 nginx 代理和后端机器之间的网络,那么您只需执行客户端->https->nginx->http->后端。

但是如果您出于任何原因不信任该网络(比如说它在公共云中),那么您也可以将 nginx 配置为在与后端服务器通信时使用 https。

这显然会对性能产生影响,因此我会确保同时使用客户端和上游保活SSL 会话缓存在 nginx 上最小化所涉及的 SSL 握手次数。SSL 的对称加密部分(RC4 或 AES)可能不会成为瓶颈;涉及公钥加密的 SSL 握手可能会成为高流量站点的性能问题。

相关内容