Преимущество такой структуры заключается в том, что вы можете в любой момент подключать и отключать дополнительные модули, используя именно ту конфигурацию сервера, которая нужна для выполнения ваших задач.
Таким образом, Apache будет занимать ровно столько места, сколько нужно ему для работы, а «лишние» функции не будут грузить память сервера, увеличивая общее быстродействие системы.
Ядро Apache выполняет самые основные функции сервера и позволяет подключать дополнительные модули Начать разговор о модулях нужно, разумеется, с ядра системы. Именно к нему примыкают все дополнительные модули, как зерна кедрового ореха к сердцевине. Ядро выполняет те функции, без которых Apache просто нельзя было бы назвать веб-сервером. Оно исправно принимает запросы браузеров, возвращаем им ответы в виде страниц и так далее, но самое главное — позволяет подключать к себе дополнительные модули.
В поставку сервера входит целый набор модулей, предназначенных для работы в режиме с несколькими запущенными процессами. Не секрет, что большинство существующих операционных систем позволяют работать с несколькими задачами одновременно. Благодаря этой группе модулей Apache может использовать все возможности таких систем. Кроме основного модуля mpm_common, вы сможете найти модуль, оптимизированный для каждой из наиболее популярных платформ (Windows, OS/2, BeOS, Netware и так далее).
Если вы хотите пользоваться всеми возможностями файла .htaccess, то стоит установить модуль mod_access, который отвечает за доступ к каталогам и файлам на сервере. С его помощью можно запретить или, напротив, разрешить доступ с определенных IP-адресов или сетей.
Модель mod_actions позволяет запускать скрипты во время обращения к определенному типу файлов Модуль mod_actions содержит в себе две директивы, касающиеся запуска CGI-скриптов. «Actions» отвечает за запуск исполняемого файла в тот момент, когда пользователь запрашивает файл определенного типа. Таким образом, можно, например, организовать обработку изображений перед отправкой пользователю или ведение статистики. Вторая директива — «Script» — позволяет выполнять программу, когда какой-либо файл запрашивается с помощью определенного метода (GET, POST или другого специального). С ее помощью можно установить универсальный обработчик формы, который будет выполнять помимо стандартных действий нужные вам. Это может быть обработка данных перед внесением их в базу, отправка по почте, ведение статистики и так далее.
За переадресацию и создание псевдонимов отвечает модуль mod_alias Если вам нужно пользоваться функциями переадресации или назначения псевдонимов, то вы не обойдетесь без модуля mod_alias. Он содержит в себе директивы, позволяющие ассоциировать псевдоним с определенным каталогом. Например, ваш каталог с картинками выглядит так: /pub/we/images/, то есть доступ на него есть, но через протокол HTTP он не доступен. Если вы не хотите его перемещать по каким-либо причинам, то можете сделать псевдоним: "Alias /img /pub/we/images". После этого пользователи, набирающие в своих браузерах адрес /redir.php?url=%E2%E0%F8_%F1%E0%E9%F2%2Fimg%2F ,будут попадать на нужный каталог с изображениями. Кстати, такая переадресация используется для каталога с CGI-скриптами.
С помощью модуля mod_asis можно выдавать клиенту страницу «как есть», без обработки сервером Еще один интересный, но не очень часто используемый вебмастерами модуль — mod_asis, которые позволяет «отдавать» клиенту некоторые файлы без обработки сервером. Для этого в конфигурационном файле нужно добавить строку "AddHandler send-as-is asis", где «asis» — расширение файла. Теперь, когда браузер будет запрашивать у сервера файл с таким расширением, он будет попадать к нему напрямую. Apache только добавит к заголовку идентификаторы «Server» и «Date», все остальное — например, статус — будет отправляться «как есть».
Модули из семейства mod_auth отвечают за аутентификацию пользователей Целый ряд модулей предназначен для аутентификации пользователей на сайте. Это и понятно, ведь проблема безопасности и разграничения доступа стоит достаточно остро. Мы опишем только те модули, которые входят в стандартную поставку сервера Apache, но отметим, что сторонними производителями создано достаточно много иных модулей, которые вы тоже можете попробовать подключить и использовать самостоятельно.
Модуль mod_auth позволяет производить базовую аутентификацию с помощью директив «AuthUserFile», «AuthGroupFile» и двух файлов — с именами пользователей и паролями, и с разделением пользователей по группам. Вы можете не использовать группы пользователей, но они сделают аутентификацию более гибкой. Вы сможете давать доступ отдельным группам на определенные разделы сайта. Для того чтобы создать файл, указанный в первой директиве, нужно использовать стандартную утилиту htpasswd, которая находится в каталоге «Bin» Apache. Для этого нужно запустить его с параметрами: "htpasswd имя_файла имя_пользователя". Если необходимо создать новую запись пользователя, то используйте команду с ключом "-c". Кроме аутентификации, при которой имена пользователей и пароли хранятся в текстовых файлах, существует базовая аутентификация с хранением информации в базе данных. Если у вас существует такая необходимость, то обратите внимание на модуль mod_auth_dbm.
Еще один вид аутентификации — цифровая (HTTP Digest Authentication), которая поддерживает шифрование данных ключом MD5 и считается более надежной, чем базовая. В Apache существует модуль mod_auth_digest, который позволяет вам ею пользоваться. Для вас настройка такой авторизации не будет отличаться практически ничем от предыдущего случая. Только для создания файлов вам нужно будет пользоваться утилитой htdigest. Вообще тема аутентификации пользователей при создании интернет-сайтов очень объемная и интересная. Она вполне заслуживает отдельного материала, а здесь мы постарались лишь описать основные возможности сервера Apachе в этой области.
Функции из модуля mod_autoindex позволяют автоматически создавать индексные файлы Модуль mod_autoindex предназначен для автоматической генерации индексных файлов. Это может быть очень удобно, если вы создали файловый архив, и вам нужно просто помещать на индексной странице названия файлов. Вам не придется создавать их вручную, достаточно воспользоваться соответствующими директивами. С их помощью можно сортировать файлы, добавлять разным типам файлов свои иконки, отображать или скрывать файлы с заданными расширениями и так далее.
С помощью функций из модуля mod_deflate можно сжимать файлы перед отправкой пользователю для ускорения загрузки Для того чтобы воспользоваться возможностью предварительного сжатия текстовых файлов с вашего сервера, нужно установить модуль mod_deflate. Он позволит включить упаковку исходящих файлов перед отправкой их пользователям. После приема браузер сам распакует файл и покажет его посетителю. Это позволит вам сократить исходящий трафик, ускорит загрузку файлов с сервера и улучшит отношение пользователя к вашему сайту. В документации к серверу приведен хороший пример рекомендуемой конфигурации — он позволит вам избежать неприятностей, если у пользователя окажется старый браузер, не поддерживающий возможностей упаковки, а потому не станем приводить его здесь.
Модуль mod_status позволяет администратору следить за работоспособностью сервера без дополнительных программ. Система будет сама записывать в файл все запросы, поступившие на него, время перезагрузок и остановок сервера, загрузку процессора компьютера и другую информацию. Для этого, кроме установки модуля, нужно создать директиву в файле httpd.conf:
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from .foo.com
</Location>
В этом случае по адресу /redir.php?url=%E2%E0%F8_%F1%E0%E9%F2%2Fserver-status вы сможете посмотреть на статистику сервера. Она будет доступна, только если вы войдете с компьютера, находящегося в домене .foo.com. Впрочем, вы можете установить и другие ограничения доступа.
И последний модуль, о котором хотелось бы рассказать, позволит вам превратить свой веб-сервер в прокси-сервер. Это делается подключением к Apache модуля mod_proxy и других модулей этого «семейства». Apache может работать в двух прокси-режимах: прямом и обратном. Прямой режим требует специальной настройки браузера посетителя и позволяет, например, пользователям локальной сети получать доступ в Интернет. Обратный же никаких дополнительных настроек не требует и предоставляет доступ к компьютерам, которые не видны «извне». Типичный пример — доступ пользователей Интернета к какому-либо сайту, находящемуся внутри локальной сети.
К слову сказать, Apache позволяет организовать не только HTTP, но и FTP-прокси с аналогичными функциями. Кроме того, развитая система директив дает возможность тонко разграничивать права доступа к сетям, разрешать или запрещать прием определенных типов файлов и так далее.
Разумеется, охватить все возможные модули Apache в рамках одного материала нам не удалось, даже стандартных их слишком много. Но, с другой стороны, рассказывать обо всех не имеет особого смысла, потому что часть из них очень хорошо известна веб-разработчикам, а другая часть нужна лишь очень узкому кругу людей. Мы постарались говорить в основном о нужных многим модулях, о существовании которых знают далеко не все.
Ссылки по теме
Статья получена: hostinfo.ru