Apache 虚拟主机覆盖 httpd.conf

Apache 虚拟主机覆盖 httpd.conf

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

答案1

每项指令列出语境在哪里它是有效的。换句话说,在哪里允许使用它。

语境可以是以下任意组合:

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

如果多次使用一个指令,则上下文、范围和指令出现的顺序决定哪个指令优先

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

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

相关内容