Nginx作为反向代理服务HTTPS

我有一些Django和ruby的应用程序,我有一个主机作为反向代理redirect到奴隶机器持有这些应用程序。 在这些应用程序上安装中间件,以便他们能够提供https服务。 每台机器都运行自己的ngnix。

我是否也在这些单独的ngnix上configurationhttps,或者只是在主代理机器上进行更改? 谢谢。

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

你可能有你的网关或nginx反向代理处理ssl。 就个人而言,除非所有的东西都在ssl下运行,否则我将在nginx级别上运行ssl。

这并不是说你不应该进行负载和性能testing,看看在你的特定环境下什么效果最好; 你绝对应该尝试不同的configuration,看看什么最适合你!

如果你信任你的nginx代理和你的后端机器之间的networking,那么你可以做client-> https-> nginx-> http->后端。

但是,如果因为任何原因(例如在公有云中)而不信任该networking,则可以将nginxconfiguration为在与后端服务器交谈时使用https。

这显然会对性能产生影响,所以我将确保在nginx上同时使用客户端和上游keepalive以及SSL会话caching ,以最大限度地减less涉及的SSL握手次数。 SSL(RC4或AES)的对称密码部分可能不会成为瓶颈; 涉及公钥密码的SSL握手可能成为高stream量站点的性能问题。