Назад | Перейти на главную страницу

Можете ли вы определить, какие модули Apache использовались и могут быть удалены?

У меня, как и у многих, есть относительно готовая установка Apache с множеством стандартных строк "LoadModule".

С самого начала я установил много программного обеспечения, и, честно говоря, я не знаю, какое программное обеспечение использует какие модули.

Я хотел бы уменьшить объем памяти, занимаемый моими экземплярами Apache, и для этого я бы хотел удалить модули из использования. Единственный известный мне способ определить, используется ли модуль, - это удалить его из конфигурации и посмотреть, не сломается ли что-нибудь. Это плохо во многих отношениях, чем я могу описать.

Я хотел бы знать, знает ли кто-нибудь способ заставить Apache сообщать, какие модули были используемый, или если есть другой способ программно определить, безопасен ли модуль для не настраивать.

Я создал тестовый сервер, прочтите документацияи начните с пустой страницы.

Следующие модули являются обязательными:

  • ядро
  • mod_authz_host
  • mod_auth_basic
  • mod_authn_file
  • mod_dir
  • mod_log_config
  • mod_mime

Затем закомментировал все оставшиеся модули и перезапустил Apache. Он будет звучать, если что-то сломается, например:

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

Сделайте то же самое с другими модулями. Используя этот метод, часто используются следующие модули не необходимо:

  • 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

Если вы не используете LDAP для аутентификации, это можно отключить:

  • mod_ldap
  • mod_authnz_ldap

При включении необходимо учитывать следующие модули:

  • 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

В более ранней публикации предлагалось отключить модули, пока что-то не сломается. Хотя в производственной системе это определенно безрассудно, этот человек идет по правильному пути, так как вам все равно придется проводить регрессионное тестирование.

Итак, в этом случае:

  1. Создайте тестовый сервер, идентичный тому, который у вас запущен, вплоть до конфигурации сайтов.
  2. Отключить модуль.
  3. Проведите регрессионное тестирование на сайтах.
  4. Повторяйте шаги 2 и 3, пока что-то не сломается или вы не закончите со всеми модулями.
  5. Повторно включите модуль.
  6. Повторите шаги 2 и 3.
  7. Используя недавно обновленный apache, выполните мгновенную резку конфигурации и перезапустите службу apache.
  8. Если это не удается, верните ванну конфигурации, вытащите журналы, проанализируйте и начните с шага 2 (или шага 1, если необходимо).

Это, вероятно, самый простой способ оптимизировать конфигурацию Apache. В противном случае вам придется просматривать каждый модуль, определять его функциональные возможности и искать по сайтам, чтобы увидеть, какой из них использует эту функциональность. Это займет гораздо больше времени.

Кроме того, это может дать вам хорошую возможность переключиться на что-то Больше легкий:

У меня нет прямого ответа на ваш вопрос, но в Интернете есть много «крошечных» пакетов AMP, которые, насколько мне известно, не включают большинство предустановленных модулей. Итак, я бы начал с рассмотрения их в качестве примера.

Эти 2 ссылки могут помочь вам начать:

  1. http://en.wikipedia.org/wiki/List_of_Apache%E2%80%93MySQL%E2%80%93PHP_packages
  2. http://en.wikipedia.org/wiki/Comparison_of_WAMPs

Я знаю, что вы спрашиваете об Apache, но, учитывая ограничения памяти в вашей системе, вам может быть намного лучше, если вы замените Apache на Nginx, Lighthttpd или другие веб-серверы, занимающие мало места. Apache отлично подходит для поддержки модулей, но очень требовательны к памяти по сравнению с более молодыми веб-серверами, такими как Nginx, Lighthttpd, Cherokee, G-WAN и т. д.