Czy możesz określić, które moduły Apache zostały użyte i które można usunąć?

18

Podobnie jak wiele osób mam stosunkowo gotową instalację Apache z wieloma domyślnymi wierszami „LoadModule”.

Od samego początku zainstalowałem dużo oprogramowania i, szczerze mówiąc, nie wiem, jakie oprogramowanie używa jakich modułów.

Chciałbym zmniejszyć zużycie pamięci w moich instancjach Apache i aby to zrobić, chciałbym usunąć moduły z użycia. Jedyny znany mi sposób na sprawdzenie, czy moduł jest w użyciu, polega na usunięciu go z konfiguracji i sprawdzeniu, czy coś nie działa. Jest to złe na więcej sposobów niż mam czas na opisanie.

Chciałbym wiedzieć, czy ktoś jest świadomy sposobu, aby Apache zgłosił, które moduły zostały użyte , czy też istnieje inny sposób programowego ustalenia, czy moduł można bezpiecznie odinstalować .

Matt Simmons
źródło

Odpowiedzi:

7

W ten sposób zbudowałem serwer testowy, przeczytałem dokumentację i zacząłem od pustej strony.

Obowiązkowe są następujące moduły:

  • rdzeń
  • mod_authz_host
  • mod_auth_basic
  • mod_authn_file
  • mod_dir
  • mod_log_config
  • mod_mime

Następnie skomentowałem wszystkie pozostałe moduły i zrestartowałem Apache. Rozlegnie się dźwięk, jeśli coś się zepsuje, na przykład:

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

Zrób to samo z innymi modułami. Stosując tę metodę, oto niektóre moduły często nie wymagają:

  • 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

Jeśli nie używasz LDAP do uwierzytelnienia, możesz to wyłączyć:

  • mod_ldap
  • mod_authnz_ldap

Podczas włączania należy wziąć pod uwagę poniższe moduły:

  • 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
kwanty
źródło
3
Jak to odpowiada na zadane pytanie?
John Gardeniers,
Co masz na myśli?
kwanta
4
Chociaż podoba mi się twoja odpowiedź, OP szuka jakiegoś narzędzia, argumentu wiersza poleceń lub modułu obsługi, który powie ci, które moduły można bezpiecznie usunąć, prawdopodobnie podczas uruchamiania przeciwko lub podczas sprawdzania plików konfiguracyjnych serwera na żywo.
mahnsc
4

Wcześniejszy post sugeruje wyłączenie modułów, dopóki coś się nie zepsuje. Chociaż jest to zdecydowanie nierozsądne w systemie produkcyjnym, osoba ta jest na dobrej drodze, ponieważ i tak będziesz musiał przeprowadzić testy regresji.

Więc w tym przypadku:

  1. Zbuduj serwer testowy identyczny z uruchomionym, aż do konfiguracji witryn
  2. Wyłącz moduł.
  3. Przeprowadź testy regresji na stronach.
  4. Powtarzaj krok 2 i 3, aż coś się zepsuje lub skończysz ze wszystkimi modułami.
  5. Ponownie włącz moduł.
  6. Powtórz kroki 2 i 3.
  7. Z nowo zaktualizowanym apache wykonaj flashowanie konfiguracji i zrestartuj usługę apache.
  8. Jeśli się nie powiedzie, przywróć kąpiel konfiguracji, wyciągnij dzienniki, przeanalizuj i rozpocznij od kroku 2 (lub kroku 1, jeśli to konieczne).

Jest to prawdopodobnie najłatwiejszy sposób na usprawnienie konfiguracji Apache. W przeciwnym razie będziesz musiał przejrzeć każdy moduł, określić jego funkcjonalność i przeszukać witryny, aby zobaczyć, który z nich używa. To potrwa znacznie dłużej.

Alternatywnie, może to dać dobrą okazję, aby przełączyć się na coś, co bardziej lekkiej :

Rilindo
źródło
0

Wiem, że pytasz o Apache, ale biorąc pod uwagę ograniczenia pamięci w twoim systemie, możesz być lepiej obsłużony przez zamianę Apache na Nginx, Lighthttpd lub inne serwery sieciowe o niskim zużyciu energii. Apache jest doskonałym wsparciem dla modułu ale samego pamięci głodnych porównaniu z młodszymi serwerów internetowych, takich jak Nginx, Lighthttpd, Cherokee, G-WAN itp

Robert Munn
źródło