您可以确定已使用哪些Apache模块并将其删除吗?


18

与许多人一样,我有一个相对开箱即用的Apache安装程序,其中包含许多默认的“ LoadModule”行。

从一开始,我就安装了很多软件,说实话,我不知道什么软件正在使用哪些模块。

我想减少Apache实例的内存占用,为此,我想删除正在使用的模块。我知道确定模块是否正在使用的唯一方法是将其从配置中删除,看看是否有任何损坏。这比我没有时间描述的方式更糟。

我想知道是否有人知道让Apache报告使用了哪些模块的方法,或者是否还有另一种以编程方式确定模块是否可以安全取消配置的方法

Answers:


7

我做的方法是构建测试服务器,阅读文档,然后从空白页开始。

以下模块是必修的:

  • 核心
  • mod_authz_host
  • mod_auth_basic
  • mod_authn_file
  • mod_dir
  • mod_log_config
  • mod_mime

然后,我注释掉所有其余模块,然后重新启动Apache。如果发生故障,它将发出声音,例如:

Starting httpd: Syntax error on line 10 of /etc/httpd/conf.d/squid.conf:
Invalid command 'order', perhaps misspelled or defined by a module not included in the server configuration

对其他模块执行相同的操作。通过这种方法,这里有一些模块通常不是需要:

  • mod_authn_alias
  • mod_authn_anon
  • mod_authn_dbm
  • mod_authn_default

  • mod_authz_user
  • mod_authz_owner
  • mod_authz_groupfile
  • mod_authz_dbm
  • mod_authz_default

  • mod_include
  • mod_logio
  • mod_ext_filter
  • mod_usertrack
  • mod_dav
  • mod_info
  • mod_dav_fs
  • mod_speling
  • mod_suexec
  • mod_cgi

如果您不使用LDAP进行身份验证,则可以禁用此功能:

  • mod_ldap
  • mod_authnz_ldap

启用时应考虑以下模块:

  • mod_proxy
  • mod_proxy_balancer
  • mod_proxy_ftp
  • mod_proxy_http
  • mod_proxy_connect

  • mod_cache
  • mod_disk_cache
  • mod_file_cache
  • mod_mem_cache

3
那如何回答所提出的问题?
约翰·加迪尼尔

你什么意思?
量子

4
尽管我喜欢您的回答,但OP正在寻找一些工具,命令行参数或处理程序,以告诉您可以安全删除哪些模块,大概是在针对实时服务器的配置文件运行时或在检查实时服务器的配置文件时。
mahnsc 2011年

4

较早的帖子建议禁用模块,直到出现问题为止。尽管这绝对是生产系统上的硬汉,但此人是正确的道路,因为无论如何您都需要进行回归测试。

因此,在这种情况下:

  1. 根据站点配置,构建与您正在运行的服务器相同的测试服务器
  2. 禁用模块。
  3. 在站点上执行回归测试。
  4. 重复第2步和第3步,直到出现问题或所有模块都完成为止。
  5. 重新启用模块。
  6. 重复步骤2和3。
  7. 使用新更新的apache,对配置执行配置快速切割,然后重新启动apache服务。
  8. 如果失败,请还原配置浴,提取日志,分析并从步骤2(或必要时从步骤1)开始。

这可能是简化Apache配置的最简单方法。否则,您将必须查看每个模块,确定其功能,并在站点中进行搜索以查看哪个模块使用了该功能。这将花费更长的时间。

另外,这可能会给您一个很好的机会来切换到 轻量级的内容



0

我知道您在问有关Apache的问题,但是考虑到系统上的内存限制,将Apache换成Nginx,Lighthttpd或其他低占用空间的Web服务器可能会更好。Apache是伟大的模块支持,但是非常消耗内存相比,年轻的网络服务器Nginx的一样,Lighthttpd,切诺基,G-WAN等

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.