Können Sie feststellen, welche Apache-Module verwendet wurden und welche entfernt werden können?

18

Ich habe, wie viele Leute, eine relativ fertige Apache-Installation mit vielen "LoadModule" -Standardzeilen.

Ich habe von Anfang an viel Software installiert, und um ehrlich zu sein, weiß ich nicht, welche Software welche Module verwendet.

Ich möchte den Speicherbedarf meiner Apache-Instanzen verringern und dazu möchte ich Module aus der Verwendung entfernen. Die einzige Möglichkeit, festzustellen, ob ein Modul verwendet wird, besteht darin, es aus der Konfiguration zu entfernen und zu prüfen, ob etwas kaputt geht. Das ist in mehr als meiner Beschreibung schlecht.

Ich möchte wissen, ob jemand eine Möglichkeit kennt, Apache dazu zu bringen, zu melden, welche Module verwendet wurden , oder ob es eine andere Möglichkeit gibt, programmgesteuert zu bestimmen, ob ein Modul sicher dekonfiguriert werden kann .

Matt Simmons
quelle

Antworten:

7

So habe ich einen Testserver erstellt, die Dokumentation gelesen und von einer leeren Seite aus begonnen.

Folgende Module sind Pflicht:

  • Ader
  • mod_authz_host
  • mod_auth_basic
  • mod_authn_file
  • mod_dir
  • mod_log_config
  • mod_mime

Dann habe ich alle verbleibenden Module auskommentiert und Apache neu gestartet. Es ertönt, wenn etwas kaputt geht, zum Beispiel:

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

Machen Sie dasselbe mit den anderen Modulen. Bei dieser Methode werden einige Module häufig nicht benötigt:

  • 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

Wenn Sie LDAP nicht zur Authentifizierung verwenden, kann dies deaktiviert werden:

  • mod_ldap
  • mod_authnz_ldap

Die folgenden Module sollten bei der Aktivierung berücksichtigt werden:

  • 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
Quanten
quelle
3
Wie beantwortet das die gestellte Frage?
John Gardeniers
Was meinst du?
Quanten
4
Obwohl ich Ihre Antwort liebe, sucht das OP nach einem Tool, einem Befehlszeilenargument oder einem Handler, mit dem Sie feststellen können, welche Module sicher entfernt werden können.
mahnsc
4

Ein früherer Beitrag schlägt vor, die Module zu deaktivieren, bis etwas kaputt geht. Während das in einem Produktionssystem definitiv tollkühn ist, ist die Person auf dem richtigen Weg, da Sie ohnehin Regressionstests durchführen müssen.

Also in diesem Fall:

  1. Erstellen Sie einen Testserver, der mit dem von Ihnen ausgeführten identisch ist, bis hin zur Standortkonfiguration
  2. Deaktivieren Sie ein Modul.
  3. Führen Sie auf den Sites Regressionstests durch.
  4. Wiederholen Sie die Schritte 2 und 3, bis etwas kaputt geht oder Sie mit allen Modulen fertig sind.
  5. Aktivieren Sie das Modul erneut.
  6. Wiederholen Sie die Schritte 2 und 3.
  7. Führen Sie mit dem neu aktualisierten Apache einen Konfigurations-Flash-Cut für die Konfiguration durch und starten Sie den Apache-Dienst neu.
  8. Wenn dies fehlschlägt, setzen Sie das Konfigurationsbad zurück, ziehen Sie die Protokolle ab, analysieren Sie und beginnen Sie mit Schritt 2 (oder Schritt 1, falls erforderlich).

Dies ist wahrscheinlich der einfachste Weg, um die Apache-Konfiguration zu optimieren. Andernfalls müssen Sie jedes Modul überprüfen, seine Funktionalität bestimmen und die Websites durchsuchen, um festzustellen, welches Modul diese Funktionalität verwendet. Das würde viel länger dauern.

Alternativ Sie kann dies eine gute Gelegenheit, etwas zu wechseln geben mehr Leichtbau :

Rilindo
quelle
0

Ich weiß, dass Sie nach Apache fragen, aber angesichts der Speicherbeschränkungen auf Ihrem System sind Sie möglicherweise besser bedient, wenn Sie Apache gegen Nginx-, Lighthttpd- oder andere platzsparende Webserver austauschen. Apache eignet sich hervorragend für die Modulunterstützung, ist jedoch im Vergleich zu jüngeren Webservern wie Nginx, Lighthttpd, Cherokee, G-WAN usw. sehr speicherintensiv.

Robert Munn
quelle