为什么将一些配置信息放在 conf/httpd.conf 中,而将一些配置信息放在 conf.d 文件夹中的文件中?

为什么将一些配置信息放在 conf/httpd.conf 中,而将一些配置信息放在 conf.d 文件夹中的文件中?

主要的 apache 配置文件位于/etc/httpd/conf/httpd.conf我的 CentOS 系统上,其中有一行:

Include conf.d/*.conf

conf.d 内部主要是执行以下操作的文件:

LoadModule auth_kerb_module modules/mod_auth_kerb.so

但也有其他站点在那里设置并拥有自己的配置文件。这是没有经过深思熟虑还是我错过了什么?

答案1

分离配置文件是管理它们的一种方法。通过将特定于模块的配置行放入其自己的文件中,启用和禁用模块变得更加容易。它还有助于管理它们,因为现在您只需编辑一个小的配置文件。 (想象一下打开一个 500 行的 httpd.conf 并寻找不正确的选项。)

不同的系统似乎有不同的方式来分离apache配置文件。例如,在我的 Gentoo 上有modules.d/vhosts.d/,而在我的 Ubuntu 上有conf.d/, mods-available/, mods-enabled/,sites-available/sites-enabled/。您可以通过名称猜出它们的作用,或者查看 httpd.conf 中的Include行。

答案2

由于有多个软件包可以为 Apache 的 HTTPd 提供功能,因此基础软件包安装了一个 httpd.conf,它提供了大部分基本设置,而其他软件包(例如 mod_ssl、nagios 和 php)则具有需要包含在每个软件包中的配置文件。包裹。 Red Hat 打包程序使用 conf.d 目录来放置这些软件包的配置,否则他们需要修改每个软件包的 httpd.conf,这在软件包安装过程中很难自动化。

答案3

我发现关于 apache 中配置文件的具体位置并没有很好的文档化规范。特别是因为他们最近改变了默认的操作方式。您是从源代码安装还是从包安装?软件包,尤其是 debian 软件包,似乎根本不遵循 apache 源代码。

我已经有一段时间没有对 apache 做过很多工作了,但如果我记得的话,conf.d/ 是你用来加载守护进程模块的地方,就像你发布的那样,或者 ffi 或类似的东西。

而conf/是站点特定配置文件所在的位置。

这就是我的样子,这是从源代码安装的。

 % ll /opt/apache2
drwxr-xr-x  2 root 4.0K 2010-10-25 14:14 bin/
drwxr-xr-x  2 root 4.0K 2010-10-25 14:14 build/
drwxr-xr-x  2 root 4.0K 2010-10-25 14:14 cgi-bin/
drwxr-xr-x  4 root 4.0K 2010-10-28 15:54 conf/
drwxr-xr-x  3 root 4.0K 2010-10-25 14:14 error/
drwsrwxrwx  3 www  4.0K 2010-10-28 13:06 htdocs/
drwxr-xr-x  3 root 4.0K 2010-10-25 14:14 icons/
drwxr-xr-x  2 root 4.0K 2010-10-25 14:14 include/
drwxr-xr-x  3 root 4.0K 2010-10-25 14:14 lib/
drwxr-xr-x  3 root 4.0K 2010-10-28 16:11 logs/
drwxr-xr-x  4 root 4.0K 2010-10-25 14:14 man/
drwxr-xr-x 14 root  12K 2010-10-14 11:45 manual/
drwxr-xr-x  2 root 4.0K 2010-10-25 14:20 modules/
 % ll /opt/apache2/conf
total 88K
drwxr-xr-x 2 root 4.0K 2010-10-28 15:55 extra/
drwxr-xr-x 3 root 4.0K 2010-10-25 14:14 original/
-rw-r--r-- 1 root  14K 2010-10-28 15:54 httpd.conf
-rw-r--r-- 1 root  13K 2010-10-25 14:14 magic
-rw-r--r-- 1 root  45K 2010-10-25 14:14 mime.types



% ll /opt/apache2/conf/extra
total 60K
-rw-r--r-- 1 root  179 2010-10-28 15:31 20_mod_fastcgi.conf
-rw-r--r-- 1 root 2.8K 2010-10-25 14:14 httpd-autoindex.conf
-rw-r--r-- 1 root 1.7K 2010-10-25 14:14 httpd-dav.conf
-rw-r--r-- 1 root 2.3K 2010-10-25 14:14 httpd-default.conf
-rw-r--r-- 1 root 1.1K 2010-10-25 14:14 httpd-info.conf
-rw-r--r-- 1 root 5.0K 2010-10-25 14:14 httpd-languages.conf
-rw-r--r-- 1 root  906 2010-10-25 14:14 httpd-manual.conf
-rw-r--r-- 1 root 3.8K 2010-10-25 14:14 httpd-mpm.conf
-rw-r--r-- 1 root 2.2K 2010-10-25 14:14 httpd-multilang-errordoc.conf
-rw-r--r-- 1 root  10K 2010-10-25 14:14 httpd-ssl.conf
-rw-r--r-- 1 root  817 2010-10-25 14:14 httpd-userdir.conf
-rw-r--r-- 1 root 1.8K 2010-10-28 15:55 httpd-vhosts.conf

但还要注意,这不是一个实时服务器,我专门构建了这个 apache 安装来测试重量

相关内容