Модули Apache


Сервер Apache состоит из модулей, почти так же, как и ядро FreeBSD. Apache может обслуживать такие разные расширения, как Microsoft FrontPage Extensions, языки сценариев (включая РНР) и встроенный Perl. В версии Apache 2.2 базовые функции содержатся в модулях. Вы можете запретить использование некоторых из них, но это нарушит стандартное поведение веб-сервера и вызовет массу неприятностей. Вы также можете обнаружить модули для сжатия страниц перед отправкой, позволяющие значительно снизить трафик. Каждый модуль представляет собой «порт» в /usr/ports/www. Имена файлов с «портами» модулей начинаются с префикса mod_, например mod_gzip.

Загрузка и выгрузка модулей Apache производятся с помощью конфигурационного файла. Операторы загрузки модулей выглядят так:

LoadModule authn_file_module libexec/apache22/mod_authn_file.so
LoadModule authn_dbm_module libexec/apache22/mod_authn_dbm.so
LoadModule authn_anon_module libexec/apache22/mod_authn_anon.so
...

Каждая запись состоит из оператора LoadModule, имени модуля и файла, в котором находится этот модуль. Пути к файлам указаны относительно значения параметра ServerRoot, то есть данные файлы находятся в каталоге /usr/local/libexec/apache22.

Модули Apache и модули ядра

Хотя модули ядра не имеют никакого отношения к модулям Apache, тем не менее операционная система FreeBSD включает модули ядра, предназначенные для оптимизации веб-серверов. Если клиент отправляет длинный запрос HTTP, ожидание прибытия всего запроса может занять много времени (с точки зрения компьютера). Фильтр приема HTTP (HTTP accept filter) буферизует входящий HTTP-трафик в ядре, пока не будет получен весь запрос. Благодаря такой буферизации веб-сервер не тратит время на ожидание получения всего запроса — он получает запрос целиком и тут же может заняться его обработкой. Чтобы активизировать фильтр приема HTTP, необходимо добавить параметр apache22_http_accept_enable="YES" в файл /etc/rc.conf.

Вот несколько популярных модулей Apache, доступных в коллекции «портов». Кто-то наверняка считает популярными другие модули — что ж, это его право.* Большинство этих модулей можно найти в /usr/ports/www.

mod_bandwidth Позволяет управлять полосой пропускания сайта, что очень удобно для организации виртуальных серверов, когда клиентам выделяется определенный объем трафика в месяц.

mod_dtcl Встраивает в Apache интерпретатор языка Tcl, что обеспечивает быструю обработку приложений на языке Tcl.

mod_fastcgi Ускоряет работу CGI-сценариев.

mod_gzip Улучшает время отклика веб-сайтов и уменьшает объем передаваемого трафика за счет сжатия данных. Рекомендую установить этот модуль.

mod_mp3 Превращает Apache в сервер потокового МРЗ.

mod_perl2 Встраивает интерпретатор Perl в сервер Apache lkz быстрой обработки приложений на языке Perl.

mod_python Встраивает интерпретатор Python в сервер Apache для быстрой обработки приложений на языке Python.

mod_ruby Встраивает интерпретатор Ruby в сервер Apache для быстрой обработки приложений на языке Ruby.

mod_webapp-apache2 Подключает Apache к Tomcat — серверу Java-приложений.

php5 Обеспечивает поддержку популярного языка веб-сценариев РНР. (Этот модуль находится в каталоге /usr/ports/lang/php5.) При установке РНР вам будет предложено заодно установить и MySQL, еще один популярный инструмент.

Вы сможете отыскать и другие модули Apache, разбросанные по всей коллекции «портов». Обнаружив у себя проблемы, связанные с Apache, поищите в Сети; есть шанс, что необходимое вам программное обеспечение уже существует.

После установки многие из этих модулей добавляют свои параметры настройки в httpd.conf. Если вы используете систему управления версиями для сохранения файла httpd.conf (как и должно быть!), значит перед установкой «порта» необходимо захватить httpd.conf (check out). Если «порт» не добавляет никаких настроек, прочитайте документацию к этому модулю; возможно, на то есть веские причины. Не исключено, что прежде чем приступать к конфигурированию Apache, вам придется принять определенные решения относительно желаемого поведения программного обеспечения.

Комментарии запрещены.