Pouvez-vous déterminer quels modules Apache ont été utilisés et peuvent être supprimés?

18

Comme beaucoup de gens, j'ai une installation Apache relativement prête à l'emploi avec beaucoup de lignes par défaut "LoadModule".

Depuis le début, j'ai installé beaucoup de logiciels, et pour être honnête, je ne sais pas quel logiciel utilise quels modules.

Je voudrais réduire l'empreinte mémoire de mes instances Apache, et pour ce faire, je voudrais supprimer l'utilisation des modules. Le seul moyen que je connaisse pour déterminer si un module est en cours d'utilisation est de le retirer de la configuration et de voir si quelque chose se casse. C'est mauvais à bien des égards que je n'ai le temps de décrire.

Je voudrais savoir si quelqu'un est au courant d'une façon d'obtenir Apache le rapport des modules ont été utilisés , ou s'il y a une autre façon de déterminer si un programme module est sûr de non configurer .

Matt Simmons
la source

Réponses:

7

La façon dont je l'ai fait est de créer un serveur de test, de lire la documentation et de commencer à partir d'une page vierge.

Les modules suivants sont obligatoires:

  • coeur
  • mod_authz_host
  • mod_auth_basic
  • mod_authn_file
  • mod_dir
  • mod_log_config
  • mod_mime

Ensuite, j'ai commenté tous les modules restants et redémarré Apache. Cela sonnera si quelque chose se casse, par exemple:

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

Faites de même avec les autres modules. En utilisant cette méthode, voici quelques modules souvent pas nécessaires:

  • 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 vous n'utilisez pas LDAP pour l'authentification, cela peut être désactivé:

  • mod_ldap
  • mod_authnz_ldap

Les modules ci-dessous doivent être pris en compte lors de l'activation:

  • 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
la source
3
Comment cela répond-il à la question posée?
John Gardeniers
Que voulez-vous dire?
quanta
4
Bien que j'aime votre réponse, l'OP recherche un outil, un argument de ligne de commande ou un gestionnaire qui vous dira quels modules sont sûrs à supprimer, probablement lors de l'exécution ou lors de l'inspection des fichiers de configuration d'un serveur en direct.
mahnsc
4

Un post précédent suggère de désactiver les modules jusqu'à ce que quelque chose se casse. Bien que cela soit définitivement imprudent dans un système de production, la personne est sur la bonne voie, car vous devrez quand même faire des tests de régression.

Donc dans ce cas:

  1. Construisez un serveur de test identique à celui que vous utilisez, jusqu'à la configuration des sites
  2. Désactivez un module.
  3. Effectuez des tests de régression sur les sites.
  4. Répétez les étapes 2 et 3 jusqu'à ce que quelque chose se casse ou que vous ayez terminé avec tous les modules.
  5. Réactivez le module.
  6. Répétez les étapes 2 et 3.
  7. Avec l'apache nouvellement mise à jour, effectuez un raccourci de configuration sur la configuration et redémarrez le service apache.
  8. En cas d'échec, rétablissez le bain de configuration, extrayez les journaux, analysez et recommencez à l'étape 2 (ou à l'étape 1 si nécessaire).

C'est probablement le moyen le plus simple de rationaliser la configuration d'Apache. Sinon, vous devrez regarder chaque module, déterminer sa fonctionnalité et rechercher dans les sites pour voir lequel utilise cette fonctionnalité. Cela prendrait beaucoup plus de temps.

Alternativement, cela peut vous donner une bonne occasion de passer à quelque chose de plus léger :

Rilindo
la source
0

Je sais que vous posez des questions sur Apache, mais étant donné les contraintes de mémoire sur votre système, vous pourriez être beaucoup mieux servi en échangeant Apache contre Nginx, Lighthttpd ou d'autres serveurs Web à faible empreinte. Apache est idéal pour la prise en charge des modules, mais très gourmand en mémoire par rapport aux serveurs Web plus jeunes comme Nginx, Lighthttpd, Cherokee, G-WAN, etc.

Robert Munn
la source