我们正在使用nginx,但是我们需要使用HTTP 1.1代理上游到haproxy,而nginx的代理模块不支持。
是否有支持HTTP 1.1,SSL和客户端保持活动的可靠的,由事件驱动的nginx替代品?
你可以尝试清漆或者磅 。
感谢微软非标准的SSL实现(有一个谷歌的“微软SSLclosures通知”)使用MSIE浏览器时,保持活着和SSL是不是一个快乐的组合。 但有迹象表明 ,MS可能会在更新的版本中变得更好。
在mod_ssl的情况下,可以根据用户代理configuration不同的行为 。 这需要在SSL终止的地方完成 – 因为它需要解码SSL以find用户代理 – 然后决定是否允许保持活动。 由于stunnel对HTTP一无所知,所以你不能在代理上允许这个。
所以你可以尝试在stunnel中放置(但不会做任何caching),并希望最好的(在web服务器上configurationkeepalive)。
如果不进行更多的研究,使用非caching代理启用保活并在ha-proxy后面运行服务器并没有什么意义 – 后者将执行的是基本的负载平衡 – 您正在破坏故障转移。
虽然HTTP / 1.1中的build议是将每个服务器名称的连接数量限制为2,但大多数浏览器开发人员已经接受了这样的事实:这不会限制服务器上的负载 – 唯一的影响是减慢客户端的速度强制串行请求。 所以使用保持活性的原因比以前less。
所以,如果你想要保持活着的select性控制,那么我认为唯一的select是apache + mod_ssl + mod_proxy
你真的需要服务器端的http / 1.1还是要保持活力? 1.1不带来很多,基本上只有块编码和“期望:100-继续”。 当服务器压缩时,分块编码很好,但情况并非如此。 现在,如果您认为需要保持活力,只需考虑nginx和haproxy之间的networking延迟。 如果两者都在同一个局域网上,则根本不需要保持活性,因为build立连接的成本非常小。 许多人把nginx和haproxy连在一起没有任何问题,所以我认为你可以保持你的nginx。
或者,您可以使用haproxy前面的stunnel来处理SSL。 然后,您可以直接从haproxy获取客户端保持活动状态和HTTP / 1.1。