
- •Запуск и остановка Apache
- •Директивы конфигурации web-сервера Apache. Контексты использования директив конфигурации
- •Контейнерные директивы Apache
- •Условная конфигурация
- •Использование динамических модулей
- •Ограничительные директивы Apache
- •Директива Options
- •Основные директивы конфигурации Apache
- •Директивы производительности Apache
- •Управление процессами
- •Управление потоками
- •Директивы для управления процессами и потоками
- •Постоянные соединения
- •Псевдонимы
- •Конфигурация типа содержимого Языки файлов
- •Типы файлов
- •Обработчики
- •Наборы символов
- •Активизация механизма cgi
- •Активизация механизма ssi
- •Переадресация
- •Аутентификация
- •Алгоритм аутентификации:
- •Управление доступом
- •Виртуальный хостинг
- •Обработка ошибок
- •Протокол ssl
Использование динамических модулей
Apache при загрузке загружает все скомпилированные модули. Однако, он также поддерживает динамическую загрузку и выгрузку модулей, представленных в виде DSO (Dynamic Shared Objects - динамические разделяемые объекты). При использовании следующих директив можно изменить список активных модулей без перекомпилирования сервера:
Директива AddModule используется для включения скомпилированного модуля, который в данный момент не активен. Сервер может содержать в своем составе модули, которые не используются. Данная директива позволяет активизировать эти модули. Сервер загружается со списком директив AddModule имя_модуля. При этом модули, указанные ниже по списку, имеют более высокий приоритет: динамический модуль, зпгружаемый последним, является первым, к кому обращается Apache.
Список активных модулей можно очистить с помощью директивы ClearModuleList. При ее использовании все активные модули запрещаются и их нужно включать по новому с помощью директивы AddModule для достижения правильного порядка выполнения модулей.
Директива LoadModule используется для загрузки модуля, скомпилированного как DSO.
Все указанные директивы используются в контексте конфигурации сервера.
Для получения списка статических (уже встроенных и поэтому всегда доступных модулей) используется команда httpd -l.
Ограничительные директивы Apache
Данные директивы ограничивают размер запросов НТТР, выдаваемых клиентами, что препятствует нерациональному расходованию клиентами ресурсов сервера и возникновению проблем типа "Отказ в обслуживании".
LimitRequestBody значение - ограничивает размер тела НТТР-запроса, посылаемого методом POST. По умолчанию установлено значение 0, что соответствует неограниченному размеру (максимальное значение - 2Гбайта). Если клиент посылает запрос, размер тела которого превышает допустимое значение, сервер отвечает сообщением об ошибке.
LimitRequestFields значение - ограничивает число дополнительных заголовков, которые могут быть посланы клиентом в НТТР-запросе. Обычно приемлемое число заголовков, которые отправляет клиент, составляет около 20. Большое число заголовков иногда указывает на то, что клиент непреднамеренно передает серверу неверные запросы.
LimitRequestSize значение - ограничивает максимальную длину отдельного заголовка НТТР, посылаемого клиентом, включая имя заголовка. Максимальное значение - 8190 символов.
LimitRequestLine значение - ограничивает максимальную длину самого запроса НТТР, включая метод запроса, URL и протокол. Значение должно быть таким, чтобы клиенты могли обращаться ко всем достоверным URL сервера с учетом строки запроса, устанавливаемой методом GET.
Директива Options
Директива Options управляет выбором свойств сервера, которые будут активными в определенном каталоге. Она учитывается только в контейнере <Directory> или в файле .htaccess.
Параметры директивы Options :
All – разрешает все опции, кроме MultiViews;
None – запрещает все опции;
ExecCGI – разрешает выполнение CGI-сценариев;
FollowSymLinks – сервер будет обращаться к файлам или каталогам через символьные ссылки (не действует внутри контейнера <Location>);
SymLinksIfOwnerMatch – сервер будет обращаться к файлам или каталогам только через те символьные ссылки, целевой файл или каталог которых принадлежит тому же пользователю, что и сама ссылка;
Includes – разрешает выполнение команд SSI;
IncludesNOEXEC – разрешает выполнение команд SSI, кроме команд exec и include;
Indexes – если запрашивается URL, указывающий на каталог, а для каталога не определена директива DirectoryIndex, сервер возвращает форматированный список содержимого каталога;
MultiViews – разрешает согласование содержимого, основанное на языке документа. Если клиент не указывает информацию о языковых предпочтениях файла (НТТР-заголовок AcceptLanguage), сервер пытается найти наиболее подходящие совпадения на языках согласно приоритету, заданному директивой LanguagePriority.
Если директива Options не указана для каталога явно, то она наследуется от каталога, находящегося на уровень выше.
Для включения и выключения опций директивы Options используются модификаторы + (добавить в текущий список опций) и – (удалить из текущего списка опций). Если же модификаторы не используются, то значения опций для контейнера полностью заместят все предыдущие значения директивы Options.