为什么我不能在我的VirtualHost指令中使用星号而不避免警告?

时间:2012-05-29 18:54:07

标签: apache

我为我的django网站设置了一个虚拟主机。

NameVirtualHost 74.181.105.228:80
<VirtualHost 74.181.105.228:80>
    ServerAdmin admin@mydomain.com
    ServerName mydomain.com

# Run the SLMCS Django application.
WSGIScriptAlias / /home/david/djangosites/mydomain/wsgi.py
WSGIScriptReloading On

Alias /static/ /home/david/staticFiles/

<Directory /home/david/djangosites/mydomain>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>

</Virtualhost>

如果我将第二行更改为<VirtualHost *:80>,Apache会在重新启动时发出警告:

[warn] NameVirtualHost 74.181.105.228:80 has no VirtualHosts

为什么呢?我不是刚刚设置虚拟主机吗?如果我使用<VirtualHost 74.181.105.228:80>,则不会显示警告。

2 个答案:

答案 0 :(得分:0)

执行此操作时出错:

<VirtualHost *:80>

因为你没有这样做:

NameVirtualHost *:80

NameVirtualHost的参数必须与VirtualHost块中使用的字符串匹配。

答案 1 :(得分:0)

您需要添加一个带有通配符的NameVirtualHost行,如下所示:

NameVirtualHost *:80

基本上,您计划在<VirtualHost address:port></VirtualHost>指令中使用的任何地址:端口都需要在其上方具有匹配的NameVirtualHost指令。即使它是通配符。