一个 IP,一个端口,多个服务器

一个 IP,一个端口,多个服务器

我正在寻找一种解决方案,可以根据主机名将一个公共 IP 地址和一个特定端口转发到不同的机器(截至目前,我只需要它用于 HTTP)。

当前设置是商用路由器上的 NAT(它仅提供简单的公共端口到私有 IP 地址/端口转发)。如果需要,我可以在路由器前添加 Windows Server 2008 R2 机器,但我宁愿不这样做。

因此,理想情况下,我希望拥有当前设置,并在其中一台 Windows 服务器上完成转发。可以这样做吗?

答案1

听起来你想要的实际上是基于名称的虚拟主机。

http://httpd.apache.org/docs/2.2/mod/core.html#namevirtualhost

答案2

尝试使用 Apache 的基于名称的虚拟主机和 mod_proxy 将其重定向到另一个主机。

<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 地址。

答案3

你可以从 Cisco、f5 和其他公司购买非常昂贵的设备来做到这一点,或者更简单地你可以设置一个实例鱿鱼缓存监听传入的请求,然后在 squid 上重写 URL 或在 hosts 文件中维护本地名称/地址映射。

如果需要处理 HTTPS,请运行隧道在 HTTP 代理前面终止 SSL。

相关内容