0

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

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

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

4

1 回答 1

1

首先你必须安装 mod_proxy 和 mod-rewrite.on windows 或许多 linux 发行版,这些模块是默认安装的,所以你可能会C:\Program Files\Apache Software Foundation\Apache2.2\modules在 windows 和/usr/lib/apache2/moduleslinux 上找到它们。

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

类 Unix 操作系统:

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>

在此处输入图像描述

有关更多信息,请参见此处此处

编辑1:

一篇关于在windows上使用apache的文章

于 2013-05-26T21:51:09.217 回答