Apache 虚拟主机覆盖 httpd.conf

jsw*_*wny 1 configuration httpd.conf virtualhost apache-2.4

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

HBr*_*ijn 6

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

所述上下文可以是任意组合:

š -服务器配置,这意味着该指令可以在服务器配置文件(例如,可使用httpd.conf),但不内的任何 <VirtualHost><Directory>容器。.htaccess文件中根本不允许 这样做。
v -虚拟主机此上下文意味着该指令可能出现在<VirtualHost>服务器配置文件中的容器内。
d -目录标记为在这种情况下有效的一项指令,可以内部使用<Directory><Location><Files><If>,并<Proxy>在服务器配置文件容器,受限于配置部分列出的限制。
h - .htaccess如果指令在此上下文中有效,则意味着它可以出现在每个目录的.htaccess文件中。它可能不会被处理,但取决于当前活动的覆盖。

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

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

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