【发布时间】:2017-01-07 09:53:59
【问题描述】:
我有 4 个虚拟主机。
我正在使用 Zend 服务器。 httpd.conf 文件似乎包含使用通配符的虚拟主机 conf 文件,如下所示:
Include "C:\blah\blah2\Zend\ZendServer/etc/sites.d/vhost_*.conf"
我的虚拟主机配置文件如下。现在,让我困惑的是 当我转到https://www-test.blah.com 或https://www-test2.blah.com 时,它工作正常。但是当我转到https://review-test.blah.com 时,它会转到 www-test.blah.com
这让我感到困惑,因为据我所知,一切看起来都以相同的方式设置。
是否有可能由于虚拟主机文件是通过通配符包含在内的,所以包含它们的顺序是否重要?如果它是字母顺序,那么它将包含在显示的顺序中。
我注意到的一件事是,如果我在服务器上,https://review-test.blah.com 工作正常。但是当我在网络的其他地方时,它会将我定向到https://www-test2.blah.com。
或者是否有其他因素会影响 Apache 选择虚拟主机的方式?例如,证书文件重要吗?
Listen 80
Listen 443
<VirtualHost *:80>
ServerName portal.blah.com:80
</VirtualHost>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
NameVirtualHost review-test.blah.com:443
<VirtualHost review-test.blah.com:443>
OTHER STUFF HERE
OTHER STUFF HERE
OTHER STUFF HERE
OTHER STUFF HERE
SSLEngine on
SSLCertificateFile "C:\blah\blah\Apache2\conf\extra\ssl\review-test.blah.com.crt"
SSLCertificateKeyFile "C:\blah\blah\Apache2\conf\extra\ssl\review-test.blah.com.key"
ServerName review-test.blah.com
ServerAlias review-test.blah.com
</VirtualHost>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
NameVirtualHost www-test.blah.com:443
<VirtualHost www-test.blah.com:443>
OTHER STUFF HERE
OTHER STUFF HERE
OTHER STUFF HERE
OTHER STUFF HERE
SSLEngine on
SSLCertificateFile "C:\blah\blah\Apache2\conf\extra\ssl\star.blah.com.crt"
SSLCertificateKeyFile "C:\blah\blah\Apache2\conf\extra\ssl\star.blah.com.key"
ServerName www-test.blah.com
ServerAlias www-test.blah.com
</VirtualHost>
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
NameVirtualHost www-test2.blah.com:443
<VirtualHost www-test2.blah.com:443>
OTHER STUFF HERE
OTHER STUFF HERE
OTHER STUFF HERE
OTHER STUFF HERE
SSLEngine on
SSLCertificateFile "C:\blah\blah\Apache2\conf\extra\ssl\star.blah.com.crt"
SSLCertificateKeyFile "C:\blah\blah\Apache2\conf\extra\ssl\star.blah.com.key"
ServerName www-test2.blah.com
ServerAlias www-test2.blah.com
</VirtualHost>
【问题讨论】:
-
具有 SSL 的基于名称的 VirtualHost 不能使用相同的证书,除非它们在同一个域中并使用通配符证书。对于多个证书,为每个名称使用不同的 IP。这是来自 apache 的 wiki 供您参考 wiki.apache.org/httpd/NameBasedSSLVHosts。
-
另外,当我在服务器本身上使用浏览器时它可以工作,但是如果我在网络上的浏览器上它就不能工作,这是有原因的吗?
标签: apache virtualhost