我正在寻找一个解决scheme转发一个公共IP地址和一个特定的端口到不同的机器基于主机名(截至目前,我只需要HTTP)。
目前的设置是在商品路由器上的NAT(它只提供私有IP地址/端口转发的简单公共端口)。 如果需要,我可以在路由器之前添加Windows Server 2008 R2计算机,但不希望这样做。
所以理想情况下,我想要有一个Windows服务器上的当前设置和转发。 是否有可能做到这一点?
听起来像你想要的是真正的基于名称的虚拟主机。
http://httpd.apache.org/docs/2.2/mod/core.html#namevirtualhost
尝试使用基于Apache的虚拟主机和mod_proxy将其redirect到另一个主机。
<VirtualHost *:80> ServerName www.example.com ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPreserveHost On ProxyPass / http://192.168.254.197/ ProxyPassReverse / http://192.168.254.197/ </VirtualHost> <VirtualHost *:80> ServerName www.other_example.com ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPreserveHost On ProxyPass / http://192.168.254.198/ ProxyPassReverse / http://192.168.254.198/ </VirtualHost>
上面的代码将捕获您的前端IP地址上的example.com和other_example.com,然后将每个IP地址传递给另一个IP地址。
你可以从思科,f5和其他人那里购买非常昂贵的设备,或者更简单地,你可以设置一个鱿鱼caching实例来侦听传入的请求,然后在squid上重写URL或在你的主机上维护本地名称/地址映射文件。
如果您需要处理HTTPS,请在HTTP代理前运行stunnel实例来终止SSL。