我最近遇到了一个 apache httpd 2.2 配置,其中定义了多个 ServerRoot 指令,每个指令后面都跟着单独的 prefork 设置。
有点像这样:
ServerRoot root1
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
[vhost-configs]
ServerRoot root2
<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 20
MaxClients 250
MaxRequestsPerChild 0
</IfModule>
[vhost-configs]
据我所知,这些是全局设置,一个覆盖另一个。但这是真的吗?对于 prefork 块之间的第二个 ServerRoot 指令,这仍然正确吗?
先感谢您
编辑
它们不在不同的条件块中,并且两个服务器根都以这样的方式使用,即正确包含具有相对路径的文件。
我只是想知道是否<ServerRoot>
会启动一个新范围,其中所有全局语句都不会覆盖先前语句的配置。
答案1
这只有当它们位于单独的条件块中时才有意义,例如<IfModule>
。最后定义的ServerRoot
正在使用中,对吗?