与Apache不太相关,在没有问题之前设置了简单的虚拟主机。似乎有一个奇怪的,使用1个IP地址和多个服务器。
我的第二个虚拟主机似乎只查看前两个条目并忽略其余条目。我已经规划了我想要发生的事情以及我的vhost文件的外观和第二个图像是发生了什么。
How my virtual hosts are setup and envision the routing to act
现在在两台服务器上使用虚拟主机可能不正确吗?
与Apache不太相关,在没有问题之前设置了简单的虚拟主机。似乎有一个奇怪的,使用1个IP地址和多个服务器。
我的第二个虚拟主机似乎只查看前两个条目并忽略其余条目。我已经绘制了我想要发生的事情以及我的vhost文件的外观以及第二个图像是发生了什么。
服务器1
<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>
服务器2
{{1}}
答案 0 :(得分:0)
避免为任何两个VirtualHost条目提供相同的Servername。使用x,y,z等名称是完全可以的(假设所有解析为来自外部用户的一个IP地址)。
为简单起见(维护和管理配置),还要避免将“标准”服务器配置(例如服务器1上的x)与VirtualHost配置混合使用。应通过VirtualHost配置Web命名空间中的任何可访问区域。 (在这种情况下,配置中的第一个成为“默认”。)
在两台服务器上使用VirtualHosts本身并不是问题。您只需确保正确转发原始HTTP请求中的ServerName并到达server2。为此,您需要添加
ProxyPreserveHost On
到您的VirtualHost配置。
但是,放弃基于VirtualHosts的服务器2的名称可能更容易,并转而使用不同的IP地址或端口用于各个(逻辑)主机。 Server2(至少在概念上)是内部设置,对“外部”侧不可见。因此,易用性不是真正可归因的