这怎么办?
>当远程请求http:// myhost.com:8080/*时,请求应转发到侦听环回接口的端口8008的http服务器.这是简单的部分.
>当远程用户请求http:// myhost.com:8080/specialurl …
>充当应用程序级网关的程序应该能够将连接升级到加密会话(不更改端口)
>在与远程浏览器建立加密会话后,它应该将请求转发到侦听环回接口的端口8000的C程序
我的问题是:
>您是否曾在生产环境中部署过这样的解决方案?如果你有…
>您使用什么产品作为应用程序网关?
>你能提供一个配置示例吗?
硬限制:
>我无法控制防火墙,我可以通过它获得外部流量进入内部服务器的唯一端口是8080.端口号无关紧要,就是防火墙级别只有一个端口可以打开传入内部服务器的流量.
>内部服务器必须运行Linux(目前运行的是Debian Lenny)
>远程用户只需要当前的Web浏览器和Internet连接即可访问此服务器.这意味着通过SSH进行反向端口转发不是一种选择.
>我需要一种在生产中经过测试且可以轻松部署的产品.我不打算开发自己的应用程序网关(如果是这种情况,我想我会在Stack Overflow上问这个问题,而不是在Server Fault询问它).
软限制:
>我想避免将Apache作为应用程序网关(尽管如果它是唯一可能的选择,我愿意这样做)
>如果可能,应用程序网关应该是一个成熟的开源软件产品.
到应用程序网关尝试的产品(没有成功)
> Nginx
> lighttpd
>磅
相关的RFC
> RFC2817(…解释了如何使用HTTP / 1.1中的升级机制在现有TCP连接上启动传输层安全性(TLS).这允许不安全和安全的HTTP流量共享同一个众所周知的端口……)
> RFC2818(…描述了如何使用TLS通过Internet保护HTTP连接.目前的做法是通过SSL(TLS的前身)层叠HTTP,通过使用不同的服务器端口区分安全流量和不安全流量. .)
解决方法
Have you ever deployed such a solution in a production environment?
我没有 – 我也不会建议它完成.作为顾问,我试图鼓励我的客户使用标准化和成熟的技术.除了边缘情况之外,没有任何系统似乎正确地实现了这些RFC – 这不是我想要建议或支持的东西.