Apache Centos 6.5只加载第一个虚拟主机

像问题状态一样,只有第一个虚拟主机被加载。 如果我去第二个域,那么它只是指向第一个域。 我可以加载第二个域上的单个文件,但我无法加载索引文件。

NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/intranet/public_html ServerName employees.nationalpurchasingpartners.com ServerAlias employees.nationalpurchasingpartners.com </VirtualHost> <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/procurement/public_html ServerName www.procurementnews.com ServerAlias procurementnews.com </VirtualHost> 

我已经通过以下链接无效。

http://wiki.apache.org/httpd/CommonMisconfigurations

添加curl的输出:

 HTTP/1.1 200 OK Server: Apache Set-Cookie: COOKIE=10.5.19.235.1396565642197130; path=/ ETag: "AAAAUSZYEDQ" Last-Modified: Thu, 06 Mar 2014 21:50:26 GMT Set-Cookie: referrer=; path=/ Set-Cookie: t=d9979760bb8211e39a570015c5e70b87; path=/ Set-Cookie: referrer=procurementnews.com; path=/ Vary: Accept-Encoding,User-Agent Cartoon: aalander4 Content-Type: text/html; charset=UTF-8 Date: Thu, 03 Apr 2014 22:54:02 GMT X-Varnish: 1862602499 Age: 0 Via: 1.1 varnish Connection: keep-alive 

httpd -S输出

httpd -S

 *:80 is a NameVirtualHost default server employees.nationalpurchasingpartners.com (/etc/httpd/conf/httpd.conf:1012) port 80 namevhost employees.nationalpurchasingpartners.com (/etc/httpd/conf/httpd.conf:1012) alias employees.nationalpurchasingpartners.com port 80 namevhost www.procurementnews.com (/etc/httpd/conf/httpd.conf:1019) alias procurementnews.com 

如果你正在configuration基于名称的虚拟主机,那么这是应该如何做,据我所知:

像这样编辑你的httpd.conf:

 NameVirtualHost *:80 <VirtualHost employees.nationalpurchasingpartners.com:80> ServerAdmin [email protected] DocumentRoot /var/www/intranet/public_html ServerName employees.nationalpurchasingpartners.com </VirtualHost> <VirtualHost procurementnews.com:80> ServerAdmin [email protected] DocumentRoot /var/www/procurement/public_html ServerName www.procurementnews.com ServerAlias procurementnews.com *.procurementnews.com </VirtualHost> 

然后运行:

 # /etc/init.d/httpd restart 

如果你想在同一台机器上testing它,你必须更新服务器的/etc/hosts文件,并在其中包含:

 1.1.1.1 employees.nationalpurchasingpartners.com 2.2.2.2 procurementnews.com 

或者确保你的DNS服务器有这些logging集。

请更新它是否有效。

你的全局configuration(VirtualHost以外的任何东西)是否包含相同的ServerName? 您可以为您的全局configuration添加一个日志文件定义,为每个虚拟主机添加一个日志文件定义,以查看每个虚拟主机正在提供哪些stream量。

在testing任何东西之前备份所有configuration文件,并在尝试应用任何更改之前始终使用“configtest”。

在httpd.conf中:

 CustomLog logs/default_access_log combined 

然后在您的VirtualHost定义中,为每个添加一个CustomLog条目:

 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/intranet/public_html ServerName employees.nationalpurchasingpartners.com ServerAlias employees.nationalpurchasingpartners.com # this entry is redundant CustomLog logs/employees.nationalpurchasingpartners.com_access_log combined </VirtualHost> <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/procurement/public_html ServerName www.procurementnews.com ServerAlias procurementnews.com CustomLog logs/www.procurementnews.com_access_log combined </VirtualHost> 

我看到你的服务器前面有清漆。 您还应该validationVarnish是否使用HTTP / 1.1来正确支持主机头。 您可能还需要启用Varnish日志loggingfunction,以便查看正在发送回Apache的内容。

您也可以通过复制组合的LogFormat行到新条目并添加来logging发送到Apache的“Host”头

 \"%{Host}i\" 

例如

 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" \"%{Host}i\"" with_host 

然后将上面的Apache CustomLog条目改为使用“with_host”而不是“combined”。

请务必在testing之后恢复您的更改,以使服务器恢复正常运行。