是否需要为 ssl / non-ssl 站点设置单独的 apache VirtualHosts?

是否需要为 ssl / non-ssl 站点设置单独的 apache VirtualHosts?

我有一个允许 ssl 和非 ssl 浏览的网站。

我在 Apache 中设置了两个虚拟主机来处理这两种情况,即:

<VirtualHost *:80>
...
</VirtualHost>

<IfModule mod_ssl.c>
<VirtualHost *:443>
...
</VirtualHost>
</IfModule>

现在,让我恼火的是,两个 vhost 中的(相当大的)配置都是重复的(唯一的区别是在 ssl-vhost 中添加了 SSL 参数),所以当我想更改某些内容时,我需要在两个 vhost 中都进行更改。而且感觉和看起来都很马虎。

有什么办法可以合并这两种配置吗?

非常感谢。

答案1

是的,正如@Hex 在他的评论中提到的那样,这是必要的。

不过,你可以走捷径,使用Include指令不要使通用配置冗余,如下所示:

<VirtualHost _default_:80>
    ...
    include conf/common_rule.conf
</VirtualHost> 

<VirtualHost _default_:443>
    ... #SSL rules
    include conf/common_rule.conf
</VirtualHost>

从一个非常相似的问题中偷来的“我是否必须复制端口 80 和 443 的 Virtualhost 指令?”

相关内容