我可以安全地禁用哪些Apache2模块?

时间:2010-10-10 05:44:31

标签: apache symfony1 apache2 vps

这些是我启用的mod:

alias auth_basic authz_default authz_groupfile authz_host authz_user autoindex deflate dir env mime negotiation php5 reqtimeout rewrite setenvif status

我正试图尽可能地减少Apache的内存占用。

任何人都可以指导我正确的方向,我绝对需要哪些,哪些是可选的?我计划运行Symfony,但是我找不到任何关于symfony的要求让它全部工作。

谢谢!

6 个答案:

答案 0 :(得分:9)

好吧,您可以先禁用所有auth / authz模块,除非您打算让Apache为您执行身份验证,在这种情况下只启用auth模块你实际上会使用它。

您可能不需要autoindex模块;如果你想让Apache自动生成索引文件,你只需要它。

deflate - 你真的想要这样,所以Apache可以在发送回客户端之前对数据进行gzip压缩(大大减少流量)。

reqtimeout - 这是实验性的。不确定你是否有意包括它。

答案 1 :(得分:2)

我最近阅读了一个详细介绍which Apache modules can be safely removed的网页。他认为最常见的用例,但您应该始终检查并重新启用您需要的内容

这是作者启用的模块列表:

core_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
mpm_event_module (static)
http_module (static)
so_module (static)
auth_basic_module (shared)
authn_file_module (shared)
authz_host_module (shared)
authz_user_module (shared)
expires_module (shared)
deflate_module (shared)
headers_module (shared)
dir_module (shared)
mime_module (shared)
setenvif_module (shared)
rewrite_module (shared)
proxy_module (shared)
proxy_fcgi_module (shared)

该页面包含CentOS和Ubuntu服务器的详细信息。我强烈建议您阅读整个页面,因为它包含有关为什么某些软件包被丢弃或被禁用的详细信息,以及提示。

答案 2 :(得分:1)

我只使用: dir,php5,authz_host,mime,rewrite。

禁用无用的模块将为您节省大量资源。

我建议您逐个禁用并每次重启apache并进行测试。另请注意,如果出现错误,您可以在开始时使用哪些模块将其还原为

答案 3 :(得分:1)

我创建了一个小的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 :(得分:0)

注释掉或禁用所有模块。

while fails $(apachectl configtest) # or apache2ctl configtest on debian
do
 if directive needed
  Add in the module that supplies the directive complained about.
 else
  delete directive
 fi
done

比逐一评论它们更容易,最终得到最小值。之后测试一切都有效,但我已经将它作为一个过程使用了几次而没有出现重大问题,但是一个免配置模块理论上可能会失败(如果存在这样的事情)。

答案 5 :(得分:0)

我将已启用模块的列表从actions alias auth_basic auth_digest authn_file authz_default authz_groupfile authz_host authz_user autoindex cgi dav dav_fs dav_svn deflate dir env fcgid mime negotiation php5 proxy proxy_balancer proxy_connect proxy_http reqtimeout rewrite ruby setenvif ssl status suexec大幅缩减为更轻的authz_host deflate dir fcgid mime php5 rewrite