HAProxy NGInx SSL设置

我一直在寻找支持SSL的服务器集群的不同设置,我想用你的标准来衡量我的想法。

要求:

  • 群集中的所有服务器应该位于相同的完整域名下。 (http和https)
  • 路由到子系统是在HA代理中进行URI匹配。
  • 所有URI都支持SSL支持。

希望:

想法:configurationHA将所有SSLstream量(mode = tcp,algorithm = Source)路由到一个将httpsstream量转换为http的NGInx集群。 将来自NGInx的httpstream量重新传递给HA,以实现基于HAconfiguration的负载平衡。

我的问题很简单:这是根据以上要求进行configuration的最佳方式吗?

我一直听说它被部署的方式是,你将有多个负载平衡器,所有运行nginx(或stunnel)去除SSL。 这些将直接连接到后端服务器。 你有一套独立的服务器解密SSL的方法似乎是相当复杂的。

老实说,你希望摆脱这种设置? 你的stream量对于一台服务器来说太多了吗? 你希望得到高可用性(在这种情况下,你需要多个HAproxy服务器,这增加了混乱)?

对我来说,你的设置似乎有点奇怪和复杂。 我也认为,如果可能的话,设法将原始访问者的IP地址join最终的nginx日志将会很困难。

一个常见的select是在haproxy前面使用stunnel 。 Stunnel会解密ssl并将其提供给haproxy,然后可以将这些内容转发给适当的后端服务器。 此解决scheme在转发原始IP地址时也有一些困难,但是如果使用haproxy的1.5开发版本和stunnel的v.4.45或更高版本,则可以使用PROXY协议 。

所以有两个select..用xforwardfor补丁使用stunnel

https://github.com/davean/stunnel-xforwardfor

这将允许您为后端服务器设置标题以读取

我只是坐在它前面的nginx来处理ssl终止,并将xforwardfor标题设置回应用程序。 把它放在与haproxy相同的服务器上。 你也可以使用ngninx根据路由传回,所以不需要haproxy。