httpd 将流量从 URL 转发到同一局域网虚拟主机上的另一台机器

httpd 将流量从 URL 转发到同一局域网虚拟主机上的另一台机器

我在 CentOs 6 服务器上运行 HTTPD。

我有 2 台服务器,它们位于同一个 LAN 上。我只有 1 个 IP 地址。我有 2 个域指向路由器,我希望 example1.com 由服务器 1 处理,example2.com 由服务器 2 处理。路由器可以将端口 80 转发到服务器 1。我需要服务器 1 将指向 example2.com 的流量转发到服务器 2。

它不能干扰其他虚拟主机目标,如下所示:

<VirtualHost *:80>
    DocumentRoot /var/www/html/example1.com
    ServerName example1.com
</VirtualHost>

我尝试使用 mod_rewrite 如下:

<VirtualHost *:80>
    ServerName example2.com
    RewriteEngine On
    RewriteRule .* http://192.168.1.60$0 [P]
</VirtualHost>

但是当我在浏览器中加载 example2.com 时,它会尝试加载 192.168.1.60,但我看不到它,因为浏览器与这两台服务器不在同一个 LAN 上。

我该怎么做呢?

答案1

这是我发现最终有效的东西:

<VirtualHost *:80>
    ServerName example2.com
    ProxyPreserveHost On
    ProxyPass / http://192.168.1.60/
    ProxyPassReverse / http://192.168.1.60/
</VirtualHost>

这使用名为 mod_proxy 的 httpd 模块,该模块在我的安装中默认启用。

相关内容