¿Puede determinar qué módulos de Apache se han utilizado y se pueden eliminar?

18

Yo, como muchas personas, tengo una instalación Apache relativamente lista para usar con muchas líneas predeterminadas "LoadModule".

Desde el principio, instalé una gran cantidad de software y, para ser sincero, no sé qué software está utilizando qué módulos.

Me gustaría reducir la huella de memoria de mis instancias de Apache, y para hacer eso, me gustaría eliminar los módulos de ser utilizados. La única forma que conozco para determinar si un módulo está en uso es eliminarlo de la configuración y ver si algo se rompe. Esto es malo en más formas de las que tengo tiempo para describir.

Me gustaría saber si alguien conoce una forma de hacer que Apache informe qué módulos se han utilizado , o si hay otra forma de determinar mediante programación si un módulo es seguro para la desconfiguración .

Matt Simmons
fuente

Respuestas:

7

La forma en que lo hice fue crear un servidor de prueba, leer la documentación y comenzar desde una página en blanco.

Los siguientes módulos son obligatorios:

  • núcleo
  • mod_authz_host
  • mod_auth_basic
  • mod_authn_file
  • mod_dir
  • mod_log_config
  • mod_mime

Luego comenté todos los módulos restantes y reinicié Apache. Sonará si algo se rompe, por ejemplo:

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

Haz lo mismo con los otros módulos. Al usar este método, aquí hay algunos módulos que a menudo no son necesarios:

  • 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

Si no está utilizando LDAP para la autenticación, esto puede deshabilitarse:

  • mod_ldap
  • mod_authnz_ldap

Los siguientes módulos deben considerarse al habilitar:

  • 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
quanta
fuente
3
¿Cómo responde eso a la pregunta que se hizo?
John Gardeniers
¿Qué quieres decir?
quanta
44
Aunque me encanta su respuesta, el OP está buscando alguna herramienta, argumento de línea de comando o controlador que le dirá qué módulos son seguros de eliminar, presumiblemente cuando se ejecuta en o al inspeccionar los archivos de configuración de un servidor en vivo.
mahnsc
4

Una publicación anterior sugiere deshabilitar los módulos hasta que algo se rompa. Si bien eso es definitivamente insensato en un sistema de producción, la persona está en el camino correcto, ya que de todos modos tendrá que hacer pruebas de regresión.

Entonces en este caso:

  1. Cree un servidor de prueba idéntico al que está ejecutando, hasta la configuración de los sitios
  2. Deshabilitar un módulo.
  3. Realizar pruebas de regresión en los sitios.
  4. Repita los pasos 2 y 3 hasta que algo se rompa o haya terminado con todos los módulos.
  5. Vuelva a habilitar el módulo.
  6. Repita los pasos 2 y 3.
  7. Con el apache recién actualizado, realice un corte flash de configuración en la configuración y reinicie el servicio apache.
  8. Si falla, revierta el baño de configuración, extraiga los registros, analice y comience desde el paso 2 (o el paso 1 si es necesario).

Esa es probablemente la forma más fácil de racionalizar la configuración de Apache. De lo contrario, tendrá que mirar cada módulo, determinar su funcionalidad y buscar en los sitios para ver cuál usa esa funcionalidad. Eso llevaría mucho más tiempo.

Alternativamente, esto puede darle una buena oportunidad para cambiar a algo más liviano :

Rilindo
fuente
0

Sé que está preguntando acerca de Apache, pero dadas las limitaciones de memoria en su sistema, podría ser mucho mejor si intercambia Apache por Nginx, Lighthttpd u otros servidores web de baja huella. Apache es excelente para el soporte de módulos, pero requiere mucha memoria en comparación con los servidores web más jóvenes como Nginx, Lighthttpd, Cherokee, G-WAN, etc.

Robert Munn
fuente