HAProxy能否在一个IP和端口上同时前置Web服务器和SSL VPN?

HAProxy能否在一个IP和端口上同时前置Web服务器和SSL VPN?,ssl,amazon-ec2,nginx,vpn,haproxy,Ssl,Amazon Ec2,Nginx,Vpn,Haproxy,我需要一个反向代理,坐在一个IP/端口上,同时前置Lablz Web服务器和SSL VPN Adito(SSL Explorer fork)。使用Nginx无法实现这一点。无法将Adito用作通用反向HTTP代理 如果HAProxy无法感知HTTP流量,它是否可以退回到TCP代理? 换句话说,如果第7层检查确定这不是HTTP流量,它会退回到第4层吗 这是我的设置 具有一个公共IP(弹性IP)的EC2机器 只有一个端口打开-443 Stunnel位于443上,正在将流量传递给HAProxy(我不

我需要一个反向代理,坐在一个IP/端口上,同时前置Lablz Web服务器和SSL VPN Adito(SSL Explorer fork)。使用Nginx无法实现这一点。无法将Adito用作通用反向HTTP代理

如果HAProxy无法感知HTTP流量,它是否可以退回到TCP代理? 换句话说,如果第7层检查确定这不是HTTP流量,它会退回到第4层吗

这是我的设置

  • 具有一个公共IP(弹性IP)的EC2机器
  • 只有一个端口打开-443
  • Stunnel位于443上,正在将流量传递给HAProxy(我不喜欢使用Stunnel,但HAProxy与Nginx不同,还没有完全支持SSL)
  • HAProxy必须配置为将一些HTTP流量传递给一台服务器(面向SVN服务器的Apache服务器),将其余HTTP流量传递给我们的Lablz Web/App服务器
  • 所有非HTTP流量必须转发到Adito VPN。
    • 此流量为:
      • VNC、NX、SMB
      • 。。。以及Adito支持的所有其他协议
我不能依靠源IP地址或端口将流量分为HTTP和非HTTP

那么,这种配置能在HAProxy中实现吗?是否可以使用任何其他反向代理进行此操作?如果我对HAProxy的想法不正确,请告诉我,有可能采用其他方法

顺便说一句,Adito SSL VPN是惊人的,如果这个设置有效,我们将能够为Lablz开发者提供一个奇妙的单点登录安全VNC over HTTPS访问他们在云中的盒子

没有解决办法,但通过Adito-请证明我错了。但请不要说VNC优于SSH。是的,SSH上的VNC更快、更安全,但也更难(对于我们的目标用户群)设置,并且假定用户位于防火墙后面,防火墙允许端口22上的出站流量(不总是这样)


此外,Adito不仅仅是远程访问网关——它是一个成熟的浏览器VPN,一个软件分发平台等等。我与Adito的人没有关联-请看我的。

好的,首先,我会使用一个简单的防火墙来区分所有HTTP和非HTTP流量。你需要的是数据包检查,以确定它是什么

haproxy和nginx都不能做到这一点。它们都是为网络流量而设计的,我不知道它们如何通过检查流量来猜测它们正在处理的是什么


更新:对此进行了一些研究,对于iptables,您可能可以使用字符串匹配来划分流量。然而,这一切都很棘手,尤其是对于加密的性质。我的一个朋友发现了,这看起来像是你需要的。如果有帮助,请告诉我。

直到,谢谢你的建议。我正在研究L7过滤器,据我所知,它可以使用正则表达式来识别应用程序协议,包括HTTP。L7筛选器从IPTABLES获取数据包并将其返回给IPTABLES。L7筛选器检查每个TCP连接上的第一组IP数据包,并基于regexp匹配标记每个数据包。然后,IPTABLES可以使用该标记将标记的数据包转发到适当的IP/端口。理论上听起来不错,但设置起来似乎非常复杂——至少对我来说是这样。直到HAProxy可以代理任何TCP流量,这就是为什么我认为它可以检测HTTP和非HTTP流量并将它们分开。但是在研究HAProxy文档之后,我找不到一个方法——因此我在stackoverflow这里问了一个问题。Nginx不代理ant TCP协议,只代理它支持的特定协议,如HTTP、SMTP——因此您是对的——它不能使用。l7筛选器当前的HTTP匹配模式使用HTTP响应,而不是请求-因此不适合路由流量。可能会创建新的l7筛选器regexp HTTP模式…我正在探索使用DeleGate()的可能性,它是一个功能齐全的代理—包括转发代理和反向代理。它支持几十种应用程序协议,可以作为任何应用程序协议的通用TCP代理。