Apache虚拟主机 - Mod Proxy问题

时间:2016-03-14 21:38:21

标签: apache proxy centos virtual host

与Apache不太相关,在没有问题之前设置了简单的虚拟主机。似乎有一个奇怪的,使用1个IP地址和多个服务器。

我的第二个虚拟主机似乎只查看前两个条目并忽略其余条目。我已经规划了我想要发生的事情以及我的vhost文件的外观和第二个图像是发生了什么。

How my virtual hosts are setup and envision the routing to act

How it's currently operating

现在在两台服务器上使用虚拟主机可能不正确吗?

与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}}

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(至少在概念上)是内部设置,对“外部”侧不可见。因此,易用性不是真正可归因的