Você pode determinar quais módulos do Apache foram usados ​​e podem ser removidos?

18

Eu, como muitas pessoas, tenho uma instalação Apache relativamente pronta com muitas linhas "LoadModule" padrão.

Desde o início, instalei muitos softwares e, para ser sincero, não sei qual software está usando quais módulos.

Gostaria de reduzir a área de cobertura de memória das minhas instâncias do Apache e, para fazer isso, gostaria de remover os módulos de serem usados. A única maneira que conheço para determinar se um módulo está em uso é removê-lo da configuração e ver se algo quebra. Isso é ruim em mais aspectos do que tenho tempo para descrever.

Gostaria de saber se alguém conhece uma maneira de fazer o Apache relatar quais módulos foram usados ou se há outra maneira de determinar programaticamente se é seguro desinstalar um módulo .

Matt Simmons
fonte

Respostas:

7

O que fiz foi criar um servidor de teste, ler a documentação e começar em uma página em branco.

Os seguintes módulos são obrigatórios:

  • testemunho
  • mod_authz_host
  • mod_auth_basic
  • mod_authn_file
  • mod_dir
  • mod_log_config
  • mod_mime

Então eu comentei todos os módulos restantes e reiniciei o Apache. Soará se algo quebrar, por exemplo:

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

Faça o mesmo com os outros módulos. Usando esse método, aqui estão alguns módulos que geralmente não são necessários:

  • 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

Se você não estiver usando LDAP para autenticação, isso poderá ser desativado:

  • mod_ldap
  • mod_authnz_ldap

Os módulos abaixo devem ser considerados ao ativar:

  • 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
fonte
3
Como isso responde à pergunta que foi feita?
John Gardeniers 29/10
O que você quer dizer?
quanta
4
Embora eu goste da sua resposta, o OP está procurando por alguma ferramenta, argumento de linha de comando ou manipulador que informe quais módulos são seguros para remover, presumivelmente quando executados contra ou durante a inspeção dos arquivos de configuração de um servidor ativo.
mahnsc
4

Uma postagem anterior sugere a desativação dos módulos até que algo quebre. Embora isso seja definitivamente imprudente em um sistema de produção, a pessoa está no caminho certo, pois você precisará fazer testes de regressão de qualquer maneira.

Então, neste caso:

  1. Crie um servidor de teste idêntico ao que você está executando, até a configuração dos sites
  2. Desative um módulo.
  3. Realize testes de regressão nos sites.
  4. Repita as etapas 2 e 3 até que algo quebre ou você termine com todos os módulos.
  5. Reative o módulo.
  6. Repita as etapas 2 e 3.
  7. Com o apache recém-atualizado, execute um corte instantâneo na configuração e reinicie o serviço apache.
  8. Se falhar, reverta o banho de configuração, puxe os logs, analise e inicie da etapa 2 (ou etapa 1, se necessário).

Essa é provavelmente a maneira mais fácil de otimizar a configuração do Apache. Caso contrário, você terá que procurar cada módulo, determinar sua funcionalidade e pesquisar nos sites para ver qual deles usa essa funcionalidade. Isso levaria muito mais tempo.

Como alternativa, isso pode lhe dar uma boa oportunidade para mudar para algo mais leve :

Rilindo
fonte
0

Sei que você está perguntando sobre o Apache, mas, dadas as restrições de memória em seu sistema, você pode ser muito melhor atendido trocando o Apache por Nginx, Lighthttpd ou outros servidores Web de baixa pegada. O Apache é ótimo para suporte a módulos, mas consome muita memória em comparação com servidores Web mais novos, como Nginx, Lighthttpd, Cherokee, G-WAN, etc.

Robert Munn
fonte