Apache虚拟主机覆盖httpd.conf

我很困惑,Apache 2.4中的虚拟主机是如何工作的。 我已经启用虚拟主机,我有两个网站设置在我的服务器上。 我认为这意味着默认主机(/ var / www / html)不起作用了。 但是httpd.conf的哪些部分被虚拟主机覆盖? httpd.conf中包含的“conf.d”是否适用于虚拟主机,还是必须手动分配? 我在httpd.conf中为RemoteIPHeader分配了一个特殊的头文件,是否必须在每个虚拟主机的.conf文件中包含这一行? 请帮我理解启用虚拟主机时httpd.conf是如何工作的。 谢谢!

每个指令都列出了有效的上下文 。 换句话说,它被允许使用。

上下文可以是以下任何组合:

sserver config这意味着该指令可以在服务器configuration文件(例如httpd.conf )中使用,但不能在任何<VirtualHost><Directory>容器中使用。 它不允许在.htaccess文件中。
v虚拟主机此上下文表示该指令可能出现在服务器configuration文件的<VirtualHost>容器内。
d – 目录在此上下文中被标记为有效的指令可以在服务器configuration文件中的<Directory><Location><Files><If><Proxy>容器中使用,但要遵守Configuration部分。
h – .htaccess如果一个指令在这个上下文中是有效的,这意味着它可以出现在每个目录.htaccess文件中。 它可能不会被处理,尽pipe取决于当前活动的覆盖。

如果多次使用指令,遇到指令的上下文,范围和顺序将决定哪个指令具有优先级 。

关于VirtualHost条目,在这里使用的指令将覆盖默认设置,但只适用于该虚拟主机条目。

使用基于名称的虚拟主机, 第一个<VirtualHost addr:port>将成为缺省值,它将服务于所有与其他VirtualHost条目中使用的任何明确定义的ServerName / ServerAlias名称不匹配的请求。