使用一个IP,我如何设置两个域名:
我可以使用网站启用scheme吗?
更新这个更清楚,我想我可能夸大了我的要求:
If http.header.host == ^.*?.foo.com: then serve('/var/www/foo'); else if tcp.port == 443: serve.ssl('/var/www/bar'); else serve('/var/www/bar') fi
当然,启用网站的所有情况都是Apache读取该文件中的所有内容,作为configuration的一部分。 您可以在文件中包含多个虚拟主机。 您可以拥有apache2.conf中的所有虚拟主机,并且在启用了站点的地方没有任何东西。 你可以把所有的虚拟主机conf.d. 启用网站的唯一区别是,a2ensite命令知道符号链接文件到站点可用。
至于你的问题:
你可以有:
NameVirtualHost *:80 NameVirtualHost *:443 <Virtualhost *:80> ServerName www.foo.com ServerAlias *.foo.com ... </VirtualHost> <Virtualhost *:80> ServerName www.bar.com ServerAlias *.bar.com ... </VirtualHost> <Virtualhost *:443> ServerName www.bar.com ServerAlias *.bar.com SSLEngine on ... </VirtualHost> <Virtualhost 12.34.56.78:80> ServerName www.bar.com ServerAlias *.bar.com ... </VirtualHost> <Virtualhost 12.34.56.78:443> ServerName www.bar.com ServerAlias *.bar.com SSLEngine on ... </VirtualHost>
您需要为* .bar.com使用通配符SSL证书,并且只能在服务器上使用一个SSL证书,而不是每个IP地址一个。
ServerName不采用通配符,但ServerAlias,这就是为什么我已经使用两个。