【发布时间】:2012-02-01 16:24:48
【问题描述】:
我在一个名为 virtualhosts.conf 的文件中定义了 2 个站点,在 httpd.conf 的末尾加载。
它们都有以下格式:
<VirtualHost IP:80>
DocumentRoot D:/Site/A/
...
</VirtualHost>
<VirtualHost IP:443>
DocumentRoot D:/Site/A/
...
</VirtualHost>
<VirtualHost IP__2:80>
DocumentRoot D:/Site/B/
...
</VirtualHost>
<VirtualHost IP__2:443>
DocumentRoot D:/Site/B/
...
</VirtualHost>
如果我使用上述配置加载https://sitea.com,它加载得很好。如果我用上面的配置加载https://siteb.com,它会中断,说siteb将自己标识为sitea。如果我翻转条目的顺序:
<VirtualHost IP__2:80>
DocumentRoot D:/Site/B/
...
</VirtualHost>
<VirtualHost IP__2:443>
DocumentRoot D:/Site/B/
...
</VirtualHost>
<VirtualHost IP:80>
DocumentRoot D:/Site/A/
...
</VirtualHost>
<VirtualHost IP:443>
DocumentRoot D:/Site/A/
...
</VirtualHost>
现在,siteb 可以正常加载,但 sitea 会抛出一个错误,表明它会将自己标识为 siteb。
发生了什么事? Apache 似乎默认为文件中的“顶部”条目,即使两者似乎都是有效的,对于它们的域来说,如果它们是第一个。
编辑:我的 httpd.conf 顶部:
Listen 80
Listen 443
NameVirtualHost IP.50:80
NameVirtualHost IP.50:443
NameVirtualHost IP.51:80
NameVirtualHost IP.51:443
NameVirtualHost IP.52:80
NameVirtualHost IP.52:443
NameVirtualHost IP.53:80
NameVirtualHost IP.53:443
NameVirtualHost IP.54:80
NameVirtualHost IP.54:443
NameVirtualHost IP.55:80
NameVirtualHost IP.55:443
NameVirtualHost IP.56:80
NameVirtualHost IP.56:443
【问题讨论】:
标签: apache ssl httpd.conf