我在 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 模块,该模块在我的安装中默认启用。