我让 nginx 充当多个 apache 服务器的反向代理。每个 apache 服务器都位于自己的虚拟容器中,以将各个服务器分开(因此,nginx 反向代理不进行负载平衡,只是将请求转发到适当的容器:站点 A 转到 192.168.2.1,站点 B 转到 192.168.2.2,等等)。
在这里处理 SSL 的最佳方法是什么?从我在 Google 上搜索到的信息来看,典型的方法似乎是在反向代理上解密 SSL 流量,然后将流量作为普通 HTTP 转发到代理后面的服务器。我不太喜欢这种方式,因为这意味着要在代理上安装证书,而不是在代理后面的服务器上安装证书 - 如果可能的话,我希望将证书与它们相关的容器放在一起。但是,HTTPS 流量显然是加密的,那么是否有可能对其进行代理?我猜没有,因为我没有遇到很多关于它的“操作方法”,但我想我会问一下集体智慧。
任何指点都将不胜感激:)
答案1
代理 HTTPS 请求将是中间人攻击,这就是我们不这么做的原因:)
最佳做法是让 SSL 终止于代理,并让代理和后端之间的流量通过未加密的 HTTP 进行(或者至少使用不同的一组证书/SSL 隧道)。
只需确保代理具有良好的安全性以保证证书的安全,并保证后端代理连接的安全(可能将代理放在 DMZ 上,将后端放在防火墙内)。