我的目标是优化我的 apache 服务器。首先我想禁用它的一些模块。我在网上冲浪,没有找到任何专门用于 CentOS7 上安装的 apache 的东西。以下是我从冲浪中得到的收获:禁用不需要的模块,从命令行启用 apache 模块等等。我可以使用此httpd -t
命令列出启用 Apache 的模块。我还知道安装过程中编译的模块位于/etc/httpd/modules
目录中。
那么在 CentOS7 上禁用和启用 apache 模块的正确方法是什么?
答案1
在 CentOS 7 上,正确的方法是浏览/etc/httpd/conf.modules.d
并找到包含要禁用的模块的相应 conf 文件。您也可以检查/etc/httpd/conf/httpd.conf
,但您在文件夹中的运气会更好conf.modules.d
。
只需将它们注释掉,重新加载 apache,就可以了。
答案2
使用/etc/httpd/conf.modules.d
或/etc/httpd/conf.d
,原理是相同的:要禁用模块或配置文件,请将其文件扩展名重命名为不同于.conf
.
答案3
我创建了一个小的 python 脚本来帮助你。请看一下https://github.com/zioalex/unused_apache_modules
这是您可以期待的:
curl http://localhost/server-info > http_modules_test.txt
cat http_modules_test.txt| python find_unused_apache_mod.py
1
Module name mod_python.c
Configuration Phase Participation: 4
Request Phase Participation: 11
Current Configuration: 3
2
Module name mod_version.c
Configuration Phase Participation: 0
Request Phase Participation: 0
Current Configuration: 1
3
Module name mod_proxy_connect.c
Configuration Phase Participation: 0
Request Phase Participation: 0
Current Configuration: 0
To remove safely:
['mod_proxy_connect.c']
POPPED: mod_proxy_connect.c
To KEEP: ['mod_python.c', 'mod_version.c', 'mod_proxy_connect.c']
答案4
在 Centos 7 中:
/etc/httpd/conf.modules.d
要启用或禁用模块,您必须使用以下命令检出文件夹中的文件:
sudo nano /etc/httpd/conf.modules.d/*.conf
要直接转到已启用模块的列表:
sudo nano /etc/httpd/conf.modules.d/00-base.conf
该文件包含 Apache 附带的/etc/httpd/conf.modules.d/00-base.conf
大部分模块(和指令)。LoadModule
要禁用模块,只需注释掉特定指令即可。指令LoadModule
如下所示:
LoadModule status_module“模块/mod_status.so”
#
您只需在指令前添加即可禁用该模块,并删除#
即可启用已禁用的模块。例如注释掉:
#LoadModule status_module "modules/mod_status.so"
将禁用状态模块。
要检查启用的模块,请使用
httpd -M
要检查语法错误,请使用
httpd -t
要查看文件夹中的所有文件,
conf.modules.d
请使用sudo nano /etc/httpd/conf.modules.d/*.conf
在 Centos 7 中,您只需注释掉不需要的模块即可禁用它们。但是,模块有一个不同的文件,这些模块也使用Apache服务器中的指令MPM
加载。如果你想LoadModule
httpd
更换MPM模块,可以通过
/etc/httpd/conf.modules.d/00-mpm.conf