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

18

У меня, как и у многих людей, есть относительно стандартная установка Apache с множеством строк «LoadModule» по умолчанию.

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

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

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

Мэтт Симмонс
источник

Ответы:

7

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

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

  • ядро
  • 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
кванты
источник
3
Как это отвечает на вопрос, который был задан?
Джон Гарденье
Что вы имеете в виду?
кванты
4
Хотя мне нравится ваш ответ, OP ищет какой-либо инструмент, аргумент командной строки или обработчик, который скажет вам, какие модули безопасно удалить, предположительно при запуске или во время проверки файлов конфигурации живого сервера.
mahnsc
4

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

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

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

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

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

Rilindo
источник
0

У меня нет прямого ответа на ваш вопрос, но в Интернете есть много «крошечных» пакетов 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
кванты
источник
0

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

Роберт Манн
источник