在Apache的httpd.conf版本2.4中,它变得更简洁了,这就是我想说的

从Apache2.2升级到Apache2.4

阅读文章后,可以看到module被编写在httpd.conf文件中,有一些文章提到了如何将其注释掉,但对于当前规范来说,这似乎太过普遍,我没有找到相关的文章。因此,我决定写下我注意到的差异。

目录结构的差异

Apache HTTP服务器版本2.2

root/
 └ etc/
     └ httpd/
         └ conf
         ┝ conf.d
         ┝ logs
         ┝ modules
         └ run

httpd2.4 is the Apache HTTP Server version 2.4.

root/
 └ etc/
     └ httpd/
         └ conf
         ┝ conf.d
         ┝ conf.modules.d
         ┝ logs
         ┝ modules
         ┝ run
         └ state

目录结构稍有变化。conf 清晰的原因是 2.4 版本的 conf.modules.d 目录。

文件长度的差异 de

2.2版本的httpd.conf

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
#LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
                      .
                      .
                      .
                      .
                      .

除了端口监听的描述外,还有一个将模块加载的描述,这里面包含了所有相关内容。您可以根据需要取消注释以启用模块,或者相反,将其注释掉以禁用模块。

2.4 版的 httpd.conf 文件

Include conf.modules.d/*.conf

太厉害了,刚才那个卡顿的部分被分割成目录,并且一次性将该目录中的内容读取了出来。

总结

我认为这个文件结构的变化是一个很好的例子,它可以避免文件描述的冗余。我也希望朝着这样的目标努力。