我刚刚在 Amazone AMI 上设置了 httpd 2.4,我注意到 httpd.conf 文件中与 2.2 conf 文件相比缺少很多指令。例如:ServerTokens、超时、服务器签名、LoadModule均不存在。
我的问题是,如果它们没有在 httpd.conf 文件中明确设置,那么它们是否在其他地方设置?如果不是,它们的默认值是什么?为什么它们不在 conf 文件中。
我应该手动设置这些指令吗?
答案1
大多数指令都有默认值。您可以在此处找到所有默认值:http://httpd.apache.org/docs/2.4/mod/directives.html
如果未使用它们,则无需担心将它们留空。为了消除歧义,有些人更喜欢在指令中包含其默认值。
还值得注意的是,在默认值方面,2.2 和 2.4 之间有一些变化:http://httpd.apache.org/docs/2.4/upgrading.html
答案2
在我管理的系统上,ServerTokens/Signature 设置位于“extra/”配置目录中的单独包含文件中。在 httpd.conf 的底部附近有几行用于包含这些默认情况下被注释掉的额外文件。不过,我确信至少从 v2.2 开始就是这样,除非我使用的发行版安装了一组自定义的配置文件。
正如詹姆斯所说,服务器对大多数事情都有默认设置,只有当您想要更改它们时才需要进行设置。
答案3
我发现 Amazon AMI 包含一行从目录加载模块的代码,这就是我找不到 LoadModule 指令的原因
包括 conf.modules.d/*.conf
该目录包含以下 conf 文件
00-base.conf 00-dav.conf 00-lua.conf 00-mpm.conf 00-proxy.conf 01-cgi.conf 10-php.conf