将 Apache 对 VirtualHost 的请求链式重写到同一网络中的另一台服务器

将 Apache 对 VirtualHost 的请求链式重写到同一网络中的另一台服务器

这基本上就是我想做的事情:

  • http 请求进入,路由器中的端口转发将其发送到本地网络中的服务器(服务器 A)
  • 服务器识别虚拟主机的请求
  • 服务器 a 对该虚拟主机有一条重写规则,该规则会重写请求并将其发送到位于同一本地网络上的服务器 B
  • 服务器 B 收到请求,识别虚拟主机并根据虚拟主机设置设置文档根目录

直到服务器 B 为止,请求始终以默认定义结束。这可能吗?我正在运行 Debian Wheezy。

服务器 A apache 配置文件/etc/apache/sites-enabled/wiki

<Directory /var/lib/shared/websites/wiki/www>
    Options None
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:80>

    ServerName wiki
    ServerAlias wiki.asus.local
    ServerAlias wiki.mydomain.net
    DocumentRoot /var/lib/shared/websites/wiki/www
    CustomLog /var/lib/shared/websites/wiki/log/access.log combined
    ErrorLog /var/lib/shared/websites/wiki/log/error.log

    RewriteEngine on
    RewriteRule ^/(.*) http://192.168.10.91/$1 [P,L]

</VirtualHost>

服务器 B apache 配置文件/etc/apache/sites-enabled/wiki

<Directory /var/lib/shared/websites/wiki/www>
    Options None
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

<VirtualHost *:80>

    ServerName wiki
    ServerAlias wiki.mydomain.net
    DocumentRoot /var/lib/shared/websites/wiki/www
    CustomLog /var/lib/shared/websites/wiki/log/access.log combined
    ErrorLog /var/lib/shared/websites/wiki/log/error.log

</VirtualHost>

哦,另外,服务器 Bapache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName在重新启动 Apache 时会抱怨,这可能与此有关,但通常的答案只是添加到ServerName localhostapache.conf这种情况下不正确,我所有的其他服务器都缺少定义,apache.conf并且它们都没有抱怨。

有人知道吗?这是甚至可能,我想做什么?(重写虚拟主机,然后再次将请求放入虚拟主机)

谢谢你的帮助!

答案1

我认为你的问题是RewriteRule ^/(.*) http://192.168.10.91/$1 [P,L]。如果你用 IP 访问第二台服务器,虚拟主机将无法工作。你可以尝试为服务器 B 设置一个特定的域名,并在重写规则中用它替换 IP

相关内容