Apache - это популярный веб-сервер с открытым исходным кодом, который поддерживает различные функциональные возможности с помощью модулей. Модули могут предоставлять дополнительные возможности, такие как переписывание URL, механизмы безопасности, кэширование и многое другое.
Управление модулями Apache подразумевает знание того, какие модули установлены, включены или доступны в вашей системе. Это очень важно для оптимизации производительности вашего сервера и обеспечения наличия необходимых компонентов для работы конкретных веб-приложений.
Независимо от того, устраняете ли вы проблему или планируете установить новые модули, иметь полное представление о том, что в данный момент работает на вашем сервере Apache, крайне важно. В этом руководстве мы рассмотрим шаги по составлению списка установленных, доступных или включенных модулей Apache в различных средах. Например, в Ubuntu используются apachectl и a2query, а в дистрибутиве на базе Red-Hat используется httpd и отсутствует a2query.
Шаги, позволяющие перечислить установленные, включенные или отключенные модули Apache
Перечислите модули, которые включены или активны в данный момент.
1 | apache2ctl -M |
1 2 3 4 5 | Loaded Modules: core_module (static) so_module (static) ... rewrite_module (shared) |
- Static - Это модули, которые компилируются непосредственно в основной бинарник httpd. Они всегда присутствуют в системе и не нуждаются в отдельной загрузке. Основным преимуществом является производительность, но недостатком является то, что добавление или удаление статического модуля требует перекомпиляции Apache.
- Shared - Общие модули компилируются как отдельные общие объекты. Они могут быть загружены или выгружены во время выполнения с помощью директив в конфигурационном файле Apache без перекомпиляции всего двоичного файла Apache. Это делает добавление и удаление функциональности более гибким.
- Dynamic - Они похожи на общие модули, но обычно используются для обозначения модулей, которые могут быть загружены или выгружены во время выполнения без перезапуска сервера. Как правило, в современных установках Apache вместо динамических модулей используются общие.
Фильтр для определенного модуля с помощью grep.
1 | apache2ctl -M | grep rewrite |
1 | rewrite_module (shared) |
Перечислите доступные модули или модули, которые присутствуют в вашей системе, но могут быть включены или не включены.
1 | ls /etc/apache2/mods-available |
1 2 | access_compat.load auth_basic.load ... authz_user.load rewrite.load |
Этот каталог содержит все доступные модули в системе на базе Debian. Расположение может меняться в зависимости от дистрибутива.
Список включенных модулей с помощью a2query.
1 | a2query -m |
1 2 3 4 5 | rewrite (enabled by site administrator) reqtimeout (enabled by maintainer script) env (enabled by maintainer script) deflate (enabled by maintainer script) negotiation (enabled by maintainer script) |
Выведите список конкретных модулей с помощью a2query.
1 | a2query -m rewrite |
1 | rewrite (enabled by site administrator) |
Список доступных и включенных модулей в Ubuntu и аналогичных системах.
1 | ls /etc/apache2/mods-* |
1 2 3 4 5 6 7 8 9 10 | /etc/apache2/mods-available: access_compat.load dir.conf proxy_express.load actions.conf dir.load proxy_fcgi.load ... /etc/apache2/mods-enabled: access_compat.load authz_user.load filter.load proxy.conf alias.conf autoindex.conf heartbeat.load proxy_http.load alias.load autoindex.load mime.conf proxy.load ... |
Список доступных и включенных модулей в CentOS и аналогичных системах.
1 | ls /etc/httpd/*modules*/ |
1 2 3 4 5 6 7 8 9 | /etc/httpd/conf.modules.d/: 00-base.conf 00-dav.conf 00-mpm.conf 00-proxy.conf 01-cgi.conf 10-proxy_h2.conf 00-brotli.conf 00-lua.conf 00-optional.conf 00-systemd.conf 10-h2.conf README /etc/httpd/modules/: mod_access_compat.so mod_cgid.so mod_log_config.so mod_reflector.so mod_actions.so mod_cgi.so mod_log_debug.so mod_remoteip.so mod_alias.so mod_charset_lite.so mod_log_forensic.so mod_reqtimeout.so ... |
Каждый конфигурационный файл может содержать более одной директивы LoadModule.