Apache2命名为基于和基于IP(SSL)与Apache2和网站启用计划

使用一个IP,我如何设置两个域名:

  1. * .foo.com仅基于端口80的名称。
  2. * .bar.com捕获对IP或* .bar.com所做的80和443的所有请求

我可以使用网站启用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,这就是为什么我已经使用两个。