在 apache CentOS7 中禁用和启用模块

在 apache CentOS7 中禁用和启用模块

我的目标是优化我的 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加载。如果你想LoadModulehttpd更换MPM模块,可以通过

 /etc/httpd/conf.modules.d/00-mpm.conf

相关内容