Apache — это один из самых популярных веб-серверов, который используется для размещения веб-сайтов и веб-приложений. Более половины сайтов интернета обслуживаются Apache, причем этот сервер отлично подходит как для более крупных, так и для небольших проектов.
Веб-сервер Apache очень гибкий и настраиваемый. Многие функции не внесены в ядро, а выполнены в форме модулей. Модули Apache помогают оптимизировать работу веб-сервера, сделать его более безопасным, контролировать дополнительные возможности и получать более подробную информацию о запросах. Вы этой статье мы рассмотрим как посмотреть список модулей, что они из себя представляют, как их настроить, а также приведем основные и самые полезные модули Apache.
Что такое модуль Apache?
Модуль Apache позволяет расширить функциональность веб-сервера, это мы уже знаем. Все модули выполнены в виде динамически подключаемых библиотек с расширением *.so. Они находятся в отдельной папке для модулей и могут быть установлены как вручную, так и с помощью пакетного менеджера дистрибутива.
Также, чтобы активировать модуль, его необходимо подключить в конфигурации программы, обычно там же задаются и специфические настройки для модуля. Далее мы рассмотрим это подробнее.
Как включить Apache?
Как я уже сказал, установка модулей apache может выполняться разными способами, например, с помощью пакетного менеджера или даже компилировать вручную. Но чтобы их загрузить, Apache должен знать где находится динамическая библиотека и основные настройки чтобы правильно загрузить модуль.
Обычно в папке конфигурации Apache, например, /etc/apache/mods-available находится файл модуля, в котором импортируется его библиотека и указываются настройки. Таким образом, чтобы включить модуль будет достаточно перенести файл с его конфигурацией в папку, из которой конфигурация загружается при старте Apache. Например, в /etc/apache2/mods-enabled. Сначала посмотрим список модулей apache:
sudo apachectl -M
Так посмотреть модули apache вы можете в Ubuntu и основанных на ней дистрибутивах, в других системах расположение файлов и команды могут отличаться, но суть та же самая, адрес библиотеки модуля должен быть включен в основную конфигурацию, неважно каким способом. В Ubuntu также есть утилиты для автоматического копирования файлов куда нужно при активации модуля, это a2enmod. Например, включим модуль rewrite:
sudo a2enmod rewrite
Или отключаем:установка модулей apache
sudo a2dismod rewrite
Теперь рассмотрим основные модули Apache, которые могут вам понадобиться.
Лучшие модули Apache
1. PageSpeed
Модуль PageSpeed — позволяет оптимизировать работу веб-сервера и ускорить загрузку контента. Он поддерживает сжатие данных, кэширование, изменение размера файлов и удаление лишних пробелов и символов из файлов. Модуль разработан в Google для увеличения скорости загрузки контента. Для установки модуля в Ubuntu выполните такие команды:
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
sudo dpkg -i mod-pagespeed-*.deb
sudo apt -f install
sudo systemctl restart apache2
Мы скачиваем самую свежую версию модуля из официального сайта, затем устанавливаем пакет, его зависимости и перезагружаем веб-сервер. Если команда dpkg выдаст ошибку разрешения зависимостей, это нормально, она будет исправлена вызовом apt. Модуль будет автоматически активирован после установки. Вы можете еще раз посмотреть список модулей Apache чтобы убедиться, что модуль был активирован:
sudo apachectl -M | grep pagespeed
Конфигурационный файл находится по адресу /etc/apache2/mods-available/pagespeed.conf, здесь вы можете настроить различные дополнительные настройки.
2. Security
Модуль mod_security добавляет дополнительный уровень защиты с помощью отклонения определенных видов трафика на основе правил и фильтров. Это программный фаервол, который позволяет защитить ваш веб-сервер от некоторых уязвимостей и проблем. Установить этот модуль можно из официальных репозиториев:
sudo apt install libapache2-modsecurity
Затем модуль нужно активировать, например, с помощью a2enmod:
sudo a2enmod mod-security
Конфигурационный файл находится в папке /etc/apache2/mod-security.conf, также на него указывает символическая ссылка из /etc/modsecurity. Настройте правила в зависимости от ваших потребностей и особенностей сайта. Затем активируйте защиту изменив значение SecRuleEngine от DetectionOnly, на On:
Не забудьте перезапустить веб-сервер для остаточной активации модуля.
3. Status
Это один из самых полезных и простых модулей, который установлен по умолчанию вместе с Apache. С помощью mod_status вы можете оценить нагрузку на сервер, а также количество запросов. Конфигурационный файл находится в папке /etc/apache2/mods-available:
sudo vi /etc/apache2/mods-available/status.conf
Здесь, в секции Locaction необходимо добавить строку Allow from с вашим IP адресом, из которого будет доступ к статистике:
Затем сохраните изменения и перезагрузите Apache. Теперь, чтобы посмотреть статистику будет достаточно открыть в браузере:
Здесь вы найдете множество полезной информации о нагрузке на сервер.
4. Spamhaus
Spamhaus — это модуль, который позволяет блокировать запросы от IP адресов, которые считаются адресами хакеров. Вы можете установить модуль spamhaus из официальных репозиториев с помощью команды:
sudo apt install libapache2-mod-spamhaus
Файл настроек находится по адресу /etc/apache2/mods-available/mod_spamhaus.conf. Вы можете фильтровать модули по различным критериям, например, MS_METHODS позволяет заблокировать IP адреса, которые были замечены в http флуде. Также вы можете настроить белый список IP адресов. После установки модуль нужно активировать:
sudo a2enmod mod-spamhauspamhaus-drop.git
sudo systemctl restart apache2
5. Rewrite
Это один из самых популярных и самых используемых модулей Apache, его применяют большинство сайтов. Он позволяет генерировать легко читаемые URL для документов, выполнять редиректы и различным образом преобразовывать содержимое запросов. Настройка модуля rewrite рассматривалась в отдельной статье. Модуль установлен по умолчанию, но в некоторых дистрибутивах его необходимо активировать:
sudo a2enmod rewrite
sudo systemctl restart apache2
Все настройки модуля выполняются через файлы httaccess, хотя вы можете использовать указывать эти настройки где угодно.
Выводы
В этой статье мы рассмотрели основные модули Apache, которые вы можете использовать. Но это далеко не полный список. Постоянно создаются новые модули, которые позволяют расширить возможности программы и изменить ее стандартное поведение. Но имейте в виду, что чем больше кода вы добавляете к серверу, тем больше расходы ресурсов и тем больше вероятность, что в коде есть критическая ошибка. Выбирайте только хорошо проверенные модули, которые используются большим количеством пользователей.