我已经配置了Apache2.2,以便我可以有两个主机。问题是当我使用第二个主机连接时,默认的主机是加载的。
这是vhosts.conf文件:
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin support@desytec.com
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 support@desytec.com
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,但会显示默认服务器。
有什么帮助吗?
发布于 2016-07-22 14:40:09
你可以在下面试一试。我已经通过在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地址发生更改时,此配置将不发生任何更改。
https://serverfault.com/questions/791421
复制相似问题