Puoi determinare quali moduli Apache sono stati utilizzati e possono essere rimossi?


18

Come molte persone, ho un'installazione Apache relativamente pronta all'uso con molte linee "LoadModule" predefinite.

Fin dall'inizio ho installato molti software e, a dire il vero, non so quale software stia usando quali moduli.

Vorrei ridurre il footprint di memoria delle mie istanze di Apache e, per farlo, vorrei rimuovere i moduli dall'uso. L'unico modo che conosco per determinare se un modulo è in uso è quello di rimuoverlo dalla configurazione e vedere se qualcosa si rompe. Questo è male in molti modi diversi da quelli che ho tempo di descrivere.

Vorrei sapere se qualcuno è a conoscenza di un modo per fare in modo che Apache riporti quali moduli sono stati utilizzati o se esiste un altro modo per determinare a livello di programmazione se un modulo è sicuro da annullare la configurazione .

Risposte:


7

Il modo in cui ho fatto è stato costruire un server di prova, leggere la documentazione e iniziare da una pagina vuota.

I seguenti moduli sono obbligatori:

  • nucleo
  • mod_authz_host
  • mod_auth_basic
  • mod_authn_file
  • mod_dir
  • mod_log_config
  • mod_mime

Quindi ho commentato tutti i moduli rimanenti e riavviato Apache. Risuonerà se qualcosa si rompe, ad esempio:

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

Fai lo stesso con gli altri moduli. Usando questo metodo, ecco alcuni moduli spesso non necessari:

  • 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 non si utilizza LDAP per l'autenticazione, questo può essere disabilitato:

  • mod_ldap
  • mod_authnz_ldap

I seguenti moduli devono essere considerati quando si abilita:

  • 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
In che modo risponde alla domanda che è stata posta?
John Gardeniers,

Cosa intendi?
quanti

4
Anche se adoro la tua risposta, l'OP sta cercando uno strumento, un argomento della riga di comando o un gestore che ti dirà quali moduli sono sicuri da rimuovere, presumibilmente quando vengono eseguiti o durante l'ispezione dei file di configurazione di un server live.
mahnsc,

4

Un post precedente suggerisce di disabilitare i moduli fino a quando qualcosa non si rompe. Mentre questo è decisamente insensato in un sistema di produzione, la persona è sulla buona strada, poiché dovrai comunque eseguire i test di regressione.

Quindi in questo caso:

  1. Costruisci un server di prova identico a quello che hai in esecuzione, fino alla configurazione dei siti
  2. Disabilita un modulo.
  3. Eseguire test di regressione sui siti.
  4. Ripeti i passaggi 2 e 3 fino a quando qualcosa non si interrompe o hai finito con tutti i moduli.
  5. Riattiva il modulo.
  6. Ripetere i passaggi 2 e 3.
  7. Con l'apache appena aggiornato, esegui una configurazione in flash sulla configurazione e riavvia il servizio apache.
  8. In caso contrario, ripristinare il bagno di configurazione, estrarre i registri, analizzare e iniziare dal passaggio 2 (o passaggio 1 se necessario).

Questo è probabilmente il modo più semplice per semplificare la configurazione di Apache. Altrimenti, dovrai cercare ciascun modulo, determinarne la funzionalità e cercare nei siti per vedere quale utilizza quella funzionalità. Ci vorrebbe molto più tempo.

In alternativa, questo potrebbe darti una buona opportunità per passare a qualcosa di più leggero :



0

So che stai chiedendo di Apache, ma dati i vincoli di memoria del tuo sistema, potresti essere molto meglio servito scambiando Apache con Nginx, Lighthttpd o altri server web a basso footprint. Apache è ottimo per il supporto dei moduli ma ha molta fame di memoria rispetto ai server Web più giovani come Nginx, Lighthttpd, Cherokee, G-WAN, ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.