【发布时间】:2016-06-30 03:26:57
【问题描述】:
对 Apache 不太熟悉,之前设置过简单的虚拟主机没有问题。似乎有一个奇怪的,使用 1 个 IP 地址和多个服务器。
我的第二个虚拟主机似乎只查看前 2 个条目而忽略了其余条目。我已经绘制出了我想要发生的事情以及我的虚拟主机文件的外观,第二张图片就是正在发生的事情。
How my virtual hosts are setup and envision the routing to act
现在在两台服务器上使用虚拟主机可能不正确?
对 Apache 不太熟悉,之前设置过简单的虚拟主机没有问题。似乎有一个奇怪的,使用 1 个 IP 地址和多个服务器。
我的第二个虚拟主机似乎只查看前 2 个条目而忽略了其余条目。我已经绘制出了我想要发生的事情以及我的 vhost 文件的外观,第二张图片就是正在发生的事情。
服务器1
<VirtualHost *:80>
ServerName server1.domain.com
ServerAlias x.domain.com
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName server2.domain.com
ServerAlias y.domain.com
ProxyPreserveHost On
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://server2
ProxyPassReverse / http://server2
</VirtualHost>
<VirtualHost *:80>
ServerName server2.domain.com
ServerAlias z.domain.com
ProxyPreserveHost On
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://server2
ProxyPassReverse / http://server2
</VirtualHost>
<VirtualHost *:80>
ServerName server2.domain.com
ServerAlias w.domain.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://server2
ProxyPassReverse / http://server2
</VirtualHost>
服务器 2
<VirtualHost *:80>
ServerName server2.domain.com
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName server2.domain.com
ServerAlias z.domain.com
DocumentRoot /var/www/html/z
</VirtualHost>
<VirtualHost *:80>
ServerName server2.domain.com
ServerAlias w.domain.com
DocumentRoot /var/www/html/w
</VirtualHost>
<VirtualHost *:80>
ServerName server2.domain.com
ServerAlias y.domain.com
DocumentRoot /var/www/html/y
</VirtualHost>
【问题讨论】:
-
我不确定您的配置是否正确。由于您的所有 ServerNames 在 server1 虚拟主机配置上都读取“server2,domain.com”,它们实际上是冲突的。因此,只有第一个条目可能适用。与 server2 配置相同。您能否添加如何通过 http 调用此设置?
-
因此进入网络的入口点是服务器 1,因为我只有 1 个面向公众的 IP 地址。为什么我使用服务器 1 路由到服务器 2 是因为我不想为了便于使用而使用不同的端口号,例如 server1.domain.com:81。因此,任何选定的子域 z、w 和 y。应该只定向到第二台服务器,然后从那里服务器 2 个虚拟主机将子域定向到正确的文件夹。
标签: apache proxy centos virtual host