像问题状态一样,只有第一个虚拟主机被加载。 如果我去第二个域,那么它只是指向第一个域。 我可以加载第二个域上的单个文件,但我无法加载索引文件。
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之后恢复您的更改,以使服务器恢复正常运行。