NameVirtualHost 不起作用:仅加载默认主机

NameVirtualHost 不起作用:仅加载默认主机

我已经配置了 Apache 2.2,这样就可以有 2 个主机。问题是当我使用第二台主机连接时,会加载默认主机。

这是 vhosts.conf 文件:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/proyectos/mutual/contratos/web
    ServerName contratos.mutual.dev
    ErrorLog /etc/httpd/logs/mutual-contratos-error_log
    <Directory "/var/www/proyectos/mutual/contratos/web">
       Options FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/proyectos/spensiones/html
    ServerName biotempo.spensiones.dev
    ErrorLog /etc/httpd/logs/biotempo.spensiones.dev-error_log
    <Directory "/var/www/proyectos/spensiones/html">
       Options FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all
    </Directory>
</VirtualHost>

这是“httpd -S”命令输出:

[root@orahost conf.d]# httpd -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
_default_:443          localhost.localdomain (/etc/httpd/conf.d/ssl.conf:81)
*:80                   is a NameVirtualHost
         default server contratos.mutual.dev (/etc/httpd/conf.d/vhosts.conf:3)
         port 80 namevhost contratos.mutual.dev (/etc/httpd/conf.d/vhosts.conf:3)
         port 80 namevhost biotempo.spensiones.dev (/etc/httpd/conf.d/vhosts.conf:16)
Syntax OK
[root@orahost conf.d]# 

为了测试,我尝试从远程计算机加载 biotempo.spensiones.dev,但显示的是默认服务器。

请问有什么帮助吗?

答案1

您可以尝试以下方法。我已经通过在 httpd.conf 中使用以下内容解决了该问题。

NameVirtualHost Server_IP_Address:80

<VirtualHost Server_IP_Address:80>

........

</VirtualHost>

如果您仍然遇到问题,请告知我们。

编辑:注意

星号 * 匹配所有地址,因此主服务器不处理任何请求。由于 ServerName 为 contratos.mutual.dev 的虚拟主机在配置文件中位于首位,因此它具有最高优先级,可视为默认或主服务器。这意味着,如果收到的请求与指定的 ServerName 指令之一不匹配,则将由该首位服务器处理。

上述配置几乎适用于所有基于名称的虚拟主机情况。事实上,这种配置唯一不适用的情况是,当您根据不同的 IP 地址或端口提供不同的内容时。

您可以将 * 替换为系统上的特定 IP 地址。此类虚拟主机仅用于连接到指定 IP 地址时收到的 HTTP 请求。但是,在 IP 地址不可预测的系统上使用 * 也很有用 - 例如,如果您的 ISP 有一个动态 IP 地址,并且您正在使用某种动态 DNS 解决方案。由于 * 匹配任何 IP 地址,因此当您的 IP 地址发生变化时,此配置无需更改即可工作。

相关内容