我目前只有一个非虚拟主机,我的 httpd.conf 文件是一个普通的普通文件,包含普通模块和其他内容。现在我需要另一个主机,但它需要在同一台服务器上。我找到了 apache 虚拟主机,并对我的配置文件的设置有疑问。
现在:
Listen 80
<IfModule> ........
.....
....
我的问题是,要为每个虚拟主机保留相同的设置,我是否必须复制当前文件两次?每个虚拟主机标签内各复制一次?像这样:
<VirtualHost *:80>
Listen 80
<IfModule> ............
......
......
</VirtualHost>
<VirtualHost *:80>
Listen 80
<IfModule> .............
.........
........
</VirtualHost>
我希望我的解释正确。
答案1
不。这些 httpd.conf 设置是全局上下文(Listen)和范围(LoadModule),您不需要在 VirtualHosts 中重复它们。
请注意,在 VH 中可以设置什么、不能设置什么以及什么是可以继承的,这有点复杂。
看http://httpd.apache.org/docs/2.2/mod/quickreference.html以供参考。
答案2
如上所述,您的配置文件的大部分内容都是全局的。您实际上只需要将不同的部分放入虚拟配置中。实际上有两个关键项:
DocumentRoot 和 ServerName。您可能还拥有不同的日志文件、目录索引、别名等。但关键的两行如下所示。
DocumentRoot /var/www/serverroot 服务器名称 name.example.com