HTTP服务器多路复用器/ Tunneler(代理)

时间:2013-05-23 22:41:32

标签: http http-proxy multiplexing

我正在寻找HTTP服务器多路复用器,因为我只有一个公共IP,我需要在同一个端口(80)上使用两个不同的Web服务器(Tomcat和IIS)。所以我认为可以使用多路复用器将iis.mydomain.com的所有流量隧道传输到IIS的内部端口(例如81),并将apache.mydomain.com的所有流量隧道传输到Tomcat的内部端口(用于例82)。

我认为多路复用器必须选择读取HTTP-Host头的正确隧道。这种方式使得所有人都对互联网浏览器透明,因为我使用的是隧道,而不是重定向。

我错了吗? 是否有适用于Windows的现有软件?

1 个答案:

答案 0 :(得分:1)

首先你需要安装mod_proxy& mod-rewrite.on windows或许多linux ditributions这些模块默认安装,所以你可以在windows中的C:\Program Files\Apache Software Foundation\Apache2.2\modules和linux中的/usr/lib/apache2/modules找到它们。

所以你需要通过apache config加载它们:

unix-like os:

LoadModule proxy_module /usr/lib/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

窗口:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so

然后在apache上配置两个虚拟主机:

Listen 80
NameVirtualHost *:80
<VirtualHost *:80>
        ServerName iis.mydomain.com
        RewriteEngine on
        RewriteRule ^/(.*)$ http://localhost:81/$1 [P]    
</VirtualHost>

<VirtualHost *:80>
        ServerName apache.mydomain.com
        RewriteEngine on
        RewriteRule ^/(.*)$ http://localhost:82/$1 [P]    
</VirtualHost>

enter image description here

有关详细信息,请参阅herehere

编辑1:

关于在Windows上使用apache的article