Глава 1: Apache и Интернет | 1 |
|
Apache — анатомия web-сервера | 1 |
|
Источники Apache | 1 |
Лицензия на Apache | 1 |
Apache и Y2K | 2 |
Поддержка Apache | 2 |
Принципы работы Apache | 2 |
Apache в UNIX и в Windows | 3 |
Конфигурационные файлы и директивы | 3 |
Модули | 4 |
|
Работа в сети и TCP/IP | 4 |
|
Определения | 5 |
Пакеты и инкапсуляция | 5 |
Сообщения АСК, NAK и другие | 6 |
Сетевая модель TCP/IP | 6 |
Другие протоколы | 7 |
IP-адреса и классы сетей | 7 |
Специальные IP-адреса | 8 |
Сетевые маски и маршрутизация | 9 |
Обнаружение служб: общеизвестные порты | 9 |
Сетевой суперсервер inetd | 10 |
Будущее: IPv6 | 11 |
Инструментальные средства для работы с сетью | 11 |
ifconfig | 11 |
netstat | 12 |
snoop и tcpdump | 12 |
ping | 13 |
spray | 13 |
traceroute | 13 |
|
Протокол передачи гипертекста | 13 |
|
Запросы и ответы HTTP | 13 |
Методы HTTP | 14 |
URI | 17 |
Протокол HTTP | 17 |
Заголовки HTTP | 17 |
|
Выбор оборудования сервера | 18 |
|
Поддерживаемые платформы | 18 |
Базовые требования к серверу | 19 |
Функционирование сервера на специально выделенном оборудовании | 19 |
Высокопроизводительные и высоконадёжные серверы | 19 |
Память | 19 |
Сетевой интерфейс | 20 |
Двойные сетевые соединения | 20 |
Подключение к Интернету | 20 |
Жёсткий диск и контроллер | 21 |
Операционная система | 21 |
Избыточность и резервное копирование | 22 |
Специальное оборудование | 23 |
Qube и RaQ от Cobalt | 23 |
IBM | 23 |
Netwinder от Rebel.Corn | 23 |
Linux + Apache | 24 |
Передача функций по обслуживанию сервера | 24 |
|
Глава 2: Начало работы с Apache | 25 |
|
Установка Apache | 25 |
|
Получение Apache | 25 |
Установка Apache с двоичных дистрибутивов | 26 |
Установка Apache из источника | 26 |
Установка Apache из предварительно построенных пакетов | 26 |
Установка Apache вручную | 27 |
Размещение файлов Apache | 27 |
Размещение исполняемых программ Apache | 28 |
Безопасность и полномочия | 28 |
Модернизация Apache | 28 |
Другие вопросы | 29 |
Время | 29 |
Множественная установка | 29 |
|
Базовая конфигурация | 30 |
|
Основные компоненты базовой конфигурации | 30 |
Имя сервера | 30 |
Обслуживаемый IP-адрес | 30 |
Обслуживаемый порт (порты) | 31 |
Автономный режим или inetd | 31 |
Пользователь и группа | 31 |
Адрес электронной почты администратора | 32 |
Корень сервера | 32 |
Журнал ошибок по умолчанию | 32 |
Корень документов | 32 |
Знакомство с конфигурационными файлами | 33 |
Конфигурирование Apache для работы с inetd | 33 |
Другие директивы базовой конфигурации | 34 |
|
Запуск, остановка и перезапуск сервера | 35 |
|
Запуск сервера | 35 |
Параметры вызова | 36 |
-D: описание имени IfDeflne | 36 |
-d: описание корня сервера | 37 |
-f: указание конфигурационного файла | 37 |
-С: обработка директивы перед чтением конфигурации | 37 |
-с: обработка директивы после чтения конфигурации | 37 |
-v: отображение версии Apache | 38 |
-V: отображение версии Apache и параметров этапа компиляции | 38 |
-h: вывод сведений о применении сервера | 38 |
-L: вывод списка доступных конфигурационных команд | 38 |
-l: вывод списка скомпилированных модулей | 39 |
-S: отображение установок после грамматического разбора | 39 |
-t: тестирование конфигурации | 40 |
-X: однопроцессный фоновый режим | 40 |
Перезапуск сервера | 40 |
Перезапуск сервера в обычном режиме | 40 |
Плавный перезапуск сервера | 41 |
Остановка сервера | 41 |
Автоматический запуск сервера | 41 |
|
Тестирование сервера | 42 |
|
Перед тестированием | 42 |
Тестирование браузера | 42 |
Тестирование из командной строки или с помощью терминальной программы | 43 |
|
Графические конфигурационные инструменты | 44 |
|
Comanche | 45 |
TkApache | 46 |
LinuxConf | 46 |
Другие инструменты конфигурирования | 47 |
Замечание относительно текстовых файлов | 48 |
|
Глава 3: Построение Apache | 49 |
|
Изменение стандартных установок | 49 |
Оптимизация сервера для конкретной платформы | 49 |
Выбор модулей | 49 |
Изменение исходного кода и применение заплат | 50 |
|
Построение Apache из исходного программного текста | 50 |
|
Построение Apache | 50 |
Общие параметры | 51 |
Выбор модулей для включения | 51 |
Построение Apache как динамического сервера | 53 |
Изменение порядка загрузки модулей | 53 |
|
Редактирование конфигурации вручную и установка значений для среды | 55 |
|
Дополнительные параметры построения | 55 |
|
Конфигурирование компоновки Apache | 55 |
Определение областей хранения Apache по отдельности | 57 |
Правила | 59 |
Построение Apache с поддержкой suEXEC | 60 |
Параметры сценариев построения и поддержки | 62 |
|
Построение модулей с помощью APACI и apxs | 62 |
|
Добавление модулей третьих фирм с помощью APACI | 63 |
Построение модулей с помощью apxs | 63 |
Установка модулей с помощью apxs | 64 |
Генерация шаблонов модулей с помощью apxs | 65 |
Использование apxs в формирующих файлах | 65 |
|
Глава 4: Конфигурирование Apache | 67 |
|
Область, просматриваемая Apache в поисках своей конфигурации | 67 |
|
Конфигурация по каталогам | 68 |
Условная конфигурация | 69 |
|
Структурирование конфигурации Apache | 70 |
|
Контейнерные директивы Apache | 71 |
Типы и размещение директив | 73 |
Директивы уровня сервера | 73 |
Директивы с глобальной и локальной областью действия | 74 |
Директивы с локальной областью действия | 74 |
|
Местоположение директив | 75 |
|
Разрешённые области | 75 |
Область действия и вложение контейнеров | 76 |
Уточнение областей действия контейнеров | 76 |
Вложение контейнерных директив | 77 |
Объединение контейнеров и их содержимого | 77 |
Законность директив в контейнерах | 77 |
|
Options и переопределение | 78 |
|
Разрешение и запрещение характеристик с помощью Options | 78 |
Наследование и переопределение параметров | 79 |
Директивы переопределения в конфигурации по каталогам | 80 |
Объединение файлов .htaccess с конфигурацией сервера | 80 |
Управление переопределением с помощью AllowOverride | 80 |
Наследование и переопределение разрешённых параметров |
переопределения | 81 |
Запрещение переопределения | 82 |
Повышение безопасности и эффективности сервера путём |
запрета .htaccess | 82 |
|
Ограничение доступа с помощью allow и deny | 83 |
|
Управление доступом по имени | 83 |
Управление доступом по IP-адресу | 84 |
Управление доступом из подсетей с помощью сети и сетевой маски | 85 |
Управление доступом по заголовку HTTP | 85 |
Комбинирование доступа по хостам и аутентификации пользователей | 86 |
Переопределение хост-доступа | 86 |
|
Списки каталогов | 87 |
|
Разрешение и запрещение индексов каталогов | 87 |
Проблемы безопасности, возникающие при индексировании | 87 |
Указание индексных файлов по умолчанию с помощью Directorylndex | 88 |
Генерация страницы HTML с помощью mod_autoindex | 88 |
Параметры индексирования | 88 |
Объединение и наследование параметров индексирования | 89 |
Добавление заголовка и справочного файла | 90 |
Управление отображением файлов с помощью Indexlgnore | 91 |
Присвоение значков | 91 |
Описание значков и текста по имени и по расширению | 91 |
Описание значков и текста по типу MIME | 92 |
Описание значков и текста по зашифрованному файлу MIME | 93 |
Описание значка по умолчанию | 93 |
Создание каталога для значков | 93 |
Присвоение описаний | 93 |
|
Среда Apache | 94 |
|
Установка, отмена и передача переменных из оболочки | 94 |
Условная установка переменных | 95 |
Специальные переменные для браузеров | 96 |
Распознавание роботов с помощью BrowserMatch | 97 |
Передача переменных в CGI | 97 |
Управление условным доступом | 98 |
Сравнение SetEnvIf и SetEnv | 98 |
Установка переменных с помощью mod_rewrite | 98 |
|
Управление ответами и заголовками | 98 |
|
Установка клиентских заголовков | 99 |
Установка сроков действия | 101 |
Установка и активизация mod_expires | 101 |
Установка срока действия по умолчанию | 101 |
Установка сроков действия по типу среды | 101 |
Подробный формат сроков действия | 102 |
|
Посылка содержимого «как есть» | 103 |
|
Посылка дайджеста содержимого | 103 |
|
Обслуживание соседей | 104 |
|
Управление роботами с помощью robots.txt | 104 |
Управление роботами в HTML | 105 |
Управление роботами при управлении доступом | 105 |
Привлечение роботов | 105 |
Проверка информации, индексируемой роботами | 106 |
Известные роботы, плохие роботы и дополнительные сведения | 106 |
|
Глава 5: Определение потребностей клиента | 107 |
|
Обработка и реализация содержимого | 107 |
|
Типы файлов | 108 |
Кодированные формы файлов | 109 |
Языки файлов | ПО |
Реализация содержимого | 111 |
Реализация содержимого с помощью MultiViews | 112 |
Карты типов | 113 |
Перестановка файлов и допустимые указатели URL в режиме MultiViews | 115 |
Реализация содержимого по нескольким критериям | 115 |
Реализация содержимого и прокси-серверы | 116 |
Магические типы MIME | 117 |
Установка и активизация mod_mime_magic | 117 |
Смещение | 117 |
Тип и критерий соответствия | 118 |
Тип MIME и кодирование | 119 |
|
Обработка ошибок и ответов | 120 |
|
Обработка ошибок в Apache | 120 |
Коды ошибок и ответов | 120 |
Директива ErrorDocument | 121 |
Создание сообщений об ошибках | 121 |
Динамическая обработка ошибок | 122 |
Ограничения ErrorDocument | 123 |
Внешние указатели URL | 123 |
Сбои при аутентификации | 123 |
|
Псевдонимы и переадресация | 123 |
|
Псевдонимы и псевдонимы сценариев | 124 |
Базовые псевдонимы | 124 |
Создание псевдонимов с помощью стандартных выражений | 124 |
Создание псевдонимов для сценариев CGI с помощью ScriptAlias | 125 |
Создание псевдонимов для сценариев CGI по стандартному выражению | 125 |
Переадресация | 125 |
Базовая переадресация | 125 |
Переадресация с помощью стандартных выражений | 127 |
Перезапись URL с помощью mod_rewrite | 127 |
Установка и активизация mod_rewrite | 127 |
Определение правил перезаписи | 128 |
Наследование правил перезаписи от родительских контейнеров | 128 |
Указание флагов в правилах перезаписи | 129 |
Добавление условий в правила перезаписи | 130 |
Добавление условий на основе URL | 130 |
Добавление условий на основе среды | 131 |
Объединение условий | 131 |
Альтернативные условия | 132 |
Альтернативные форматы запроса | 133 |
Многократное использование условий | 134 |
Использование в правилах значений, извлекаемых из условий | 134 |
Использование в условиях значений, извлекаемых из правил | 134 |
Использование правил перезаписи в конфигурации по каталогам | 134 |
Использование карт перезаписи | 135 |
Стандартный текстовый файл | 136 |
База данных DBM | 136 |
Текстовый файл со случайным выбором | 137 |
Внешняя программа | 137 |
Предотвращение конфликтов с внешними программами | 138 |
Внутренняя функция | 139 |
Активизация журнала перезаписи | 139 |
Другие примеры | 139 |
Серверные карты образов | 139 |
Активизация карт образов | 140 |
Описание файлов карт образов | 140 |
Установка директив для базы и для значения по умолчанию | 142 |
Организация внешнего вида меню в картах образов | 143 |
Использование карт образов в HTML | 143 |
Исправление ошибочных указателей URL | 143 |
|
Глава 6: Доставка динамического содержимого | 145 |
|
Серверные включения | 146 |
|
Активизация SSI | 147 |
Формат команд SSI | 147 |
Команды SSI | 147 |
Расширение SSI | 148 |
Кэширование документов SSI | 148 |
Определение документов SSI по возможности их исполнения | 148 |
|
Введение в CGI — общий шлюзовой интерфейс | 148 |
|
CGI и среда | 149 |
Переменные среды, используемые в сценариях CGI | 149 |
Анализ среды с помощью сценария CGI | 149 |
Конфигурирование Apache для распознавания сценариев CGI | 150 |
Установка каталога CGI с помощью ScriptAlias | 150 |
Скрытие сценариев CGI с помощью ScriptAlias и PATH_INFO | 151 |
Использование ScriptAliasMatch для описания нескольких каталогов | 151 |
Повышение уровня безопасности каталогов для ScriptAlias | 152 |
Установка каталога CGI с помощью ExecCGI: простой способ | 152 |
Объявление отдельных файлов сценариями CGI | 152 |
Описание сценариев CGI по расширению | 152 |
Описание сценариев CGI по типу среды | 153 |
Установка каталога CGI с помощью ExecCGI: лучший способ | 153 |
Активизация сценариев CGI по событиям | 153 |
Конфигурирование типов среды для обработки сценариями CGI | 154 |
Конфигурирование расширений файлов для обработки сценариями CGI | 154 |
Конфигурирование пользовательских типов среды для обработки |
сценариями CGI | 154 |
Конфигурирование методов HTTP для обработки сценариями CGI | 154 |
|
Написание и отладка сценариев CGI | 155 |
|
Простой пример сценария CGI | 155 |
Метод GET | 156 |
Метод POST | 156 |
Выбор между GET и POST | 157 |
Интерактивные сценарии: простая форма | 157 |
Добавление заголовков | 158 |
Отладка сценариев CGI | 159 |
Посылка результатов отладки в журнал ошибок | 159 |
Тестирование сценариев CGI из командной строки | 159 |
Директивы ScriptLog в Apache | 161 |
Ограничение использования ресурсов сценариями CGI | 162 |
|
Действия и обработчики | 162 |
|
Обработчики | 162 |
Встроенные обработчики Apache | 163 |
Установка обработчиков | 163 |
Активизация сценариев CGI по типам среды с помощью Action | 164 |
Описание сценариев CGI как обработчиков с помощью Action | 164 |
Удаление типов среды из действий | 165 |
Пример простого пользовательского обработчика | 165 |
Более сложный пример: реализация серверных включений | 166 |
|
Динамическое содержимое и безопасность | 167 |
|
Вопросы безопасности CGI | 167 |
Советы по обеспечению безопасности, представленные в WWW | 168 |
Вопросы безопасности конфигурации CGI в Apache | 168 |
Пример незащищённого сценария CGI | 169 |
Незащищённый доступ к файлам | 171 |
Входные данные HTML | 171 |
Переменные среды | 171 |
Незащищённые функции библиотек | 172 |
Известные незащищённые сценарии CGI | 172 |
Оболочки CGI | 173 |
suEXEC | 173 |
Построение и установка suEXEC | 173 |
Конфигурирование Apache для использования suEXEC | 175 |
CGIWrap | 175 |
Построение и установка CGIWrap | 175 |
Конфигурирование Apache для использования CGIWrap | 176 |
Частные сценарии CGI и оболочки | 177 |
Недостатки оболочек CGI | 178 |
Контрольный список безопасности | 178 |
|
Создание сценария CGI с помощью FastCGI | 179 |
|
Построение и установка FastCGI | 180 |
Конфигурирование Apache для использования FastCGI | 180 |
Сценарии FastCGI: выполнение CGI в FastCGI | 181 |
Взаимодействие со сценариями FCGI | 182 |
Выполнение сценариев FCGI в CGI | 182 |
Конфигурирование динамических сценариев FCGI | 183 |
Запуск сценариев FCGI с помощью Apache | 184 |
Внешние сценарии FCGI | 185 |
Выполнение сценариев FCGI с помощью suEXEC | 185 |
Фильтрация с помощью FastCGI | 185 |
Авторизация запросов с помощью FastCGI | 186 |
|
Глава 7: Обслуживание нескольких web-серверов | 188 |
|
Домашние страницы пользователей | 188 |
Несколько серверов | 188 |
Виртуальный хостинг на основе IP-адресов | 189 |
Виртуальный хостинг на основе имён | 189 |
|
Домашние страницы пользователей | 189 |
|
Указание каталогов пользователей с помощью UserDir | 189 |
Относительный URL | 189 |
Абсолютный URL | 190 |
Абсолютный URL с заполнителем | 190 |
Разрешение и запрещение отдельных пользователей | 190 |
Переадресация пользователей на другие серверы | 191 |
Альтернативные способы указания каталогов пользователей | 191 |
|
Отдельные серверы | 191 |
|
Ограничение области просмотра Apache | 192 |
Указание разных конфигураций и корней серверов | 192 |
Запуск отдельных серверов из одной конфигурации | 193 |
Совместное использование внешних конфигурационных файлов | 193 |
|
Виртуальный хостинг на основе IP-адресов | 194 |
|
Несколько IP-адресов, отдельные сети и виртуальные интерфейсы | 194 |
Отдельные сетевые платы | 194 |
Виртуальные интерфейсы | 195 |
Конфигурирование процесса прослушивания Apache | 195 |
Описание виртуальных хостов | 196 |
Виртуальные хосты и конфигурация уровня сервера | 198 |
Указание пользовательских привилегий ддя виртуальных хостов | 198 |
Ненужные директивы | 199 |
Виртуальные хосты по умолчанию | 200 |
|
Виртуальный хостинг на основе имён | 200 |
|
Описание именованных виртуальных хостов | 201 |
Имена и псевдонимы серверов | 201 |
Описание хоста по умолчанию для виртуального хостинга на основе имён | 202 |
Комбинирование хостинга на основе IP-адресов и на основе имён: |
завершённый пример | 202 |
|
Вопросы, связанные с виртуальным хостингом | 205 |
|
Файлы журналов и описатели файлов | 205 |
Виртуальные хосты и безопасность сервера | 206 |
Защищённый HTTP и виртуальные хосты | 207 |
Обслуживание клиентов HTTP/1.0 с помощью именованных виртуальных |
хостов | 208 |
|
Динамический виртуальный хостинг | 209 |
|
Массовый хостинг с помощью псевдонимов виртуальных хостов | 210 |
Базовые псевдонимы виртуальных хостов | 210 |
Хранение хостов в подкаталогах с помощью псевдонимов именованных |
виртуальных хостов | 210 |
Хранение хостов в подкаталогах с помощью псевдонимов виртуальных |
хостов на основе IP-адресов | 212 |
Создание виртуальных псевдонимов сценариев | 213 |
Протоколирование виртуальных хостов с псевдонимами | 213 |
Динамическое отображение хост-имён с помощью mod_rewrite | 214 |
Оперативная генерация конфигурационных файлов с помощью mod_perl | 215 |
Подключение заранее сгенерированного файла виртуальных хостов | 217 |
|
Глава 8: Повышение производительности Apache | 218 |
|
Директивы производительности Apache | 219 |
|
Управление процессами Apache в UNIX | 219 |
StartServers <число> (значение по умолчанию 5) | 219 |
MinSpareServers <число> (значение по умолчанию 5) | 219 |
MaxSpareServers <число> (значение по умолчанию 10) | 219 |
MaxClients <число> (значение по умолчанию 256) | 220 |
MaxRequestsPerChild <число> (значение по умолчанию 0) | 220 |
Управление процессами Apache в Windows | 221 |
Директивы производительности, связанные с протоколами | 221 |
SendBufferSize <байты> | 221 |
KeepAlive <on|off> | 222 |
KeepAliveTimeout <секунды> | 222 |
MaxKeepAliveRequests <число> | 222 |
TimeOut | 222 |
ListenBacklog | 223 |
Ограничительные директивы HTTP | 223 |
LimitRequestBody | 223 |
LimitRequestFields | 224 |
LimitRequestFieldSize | 224 |
LimitRequestLine | 224 |
|
Конфигурирование Apache для повышения производительности | 224 |
|
Директивы, влияющие на производительность | 224 |
DNS и поиск хост-имён | 224 |
HostNameLookups on/off/double | 224 |
UseCanonicalName on/off/dns | 225 |
Соединение по условным ссылкам и проверка полномочий | 225 |
Кэширование динамического содержимого | 225 |
Кэширование реализуемого содержимого | 225 |
Протоколирование | 226 |
Управление сеансами | 226 |
Файлы .htaccess | 226 |
Расширенное состояние | 227 |
Перезапись указателей URL | 227 |
Большие конфигурационные файлы | 227 |
Производительность при использовании CGI | 227 |
Дополнительные директивы для оптимизации производительности | 227 |
MMapFile | 228 |
mod_bandwidth | 228 |
Ограничение пропускной способности по клиентам | 228 |
Ограничение пропускной способности по размеру файлов | 229 |
Минимальная пропускная способность и распределение пропускной |
способности между клиентами | 229 |
Алгоритм передачи данных | 230 |
|
Использование прокси-серверов | 230 |
|
Установка и активизация прокси-серверов | 230 |
Обьчное функционирование прокси-сервера | 231 |
Конфигурирование Apache в качестве прокси-сервера | 231 |
Соответствие URL контейнерам каталогов | 233 |
Блокирование сайтов посредством прокси-сервера | 234 |
Локализация удалённых указателей URL и скрытие серверов | 234 |
Переадресация запросов на удалённый прокси-сервер | 235 |
Прокси-цепочки и заголовок Via | 236 |
Прокси-серверы и внутренние сети | 236 |
Обработка ошибок | 237 |
Использование других протоколов в туннельном режиме | 237 |
Настройка операций прокси-сервера | 238 |
Squid — высокоэффективная альтернатива прокси-серверу | 238 |
|
Кэширование | 238 |
|
Активизация кэширования | 238 |
Установка размера кэша | 239 |
Доставка кэшируемых документов и удаление документов из кэша по |
истечении срока действия | 239 |
Кэширование незавершённых запросов | 241 |
Запрещение кэширования для отдельных хостов, доменов и документов | 241 |
|
Отказоустойчивость и кластеризация | 241 |
|
Дублирование сервера посредством вспомогательной DNS |
с переадресацией | 242 |
Распределение нагрузки с помощью циклической DNS | 243 |
Равномерное распределение нагрузки с помощью оборудования | 243 |
Кластеризация с помощью Apache | 243 |
Другие варианты кластеризации | 246 |
Eddie | 246 |
TurboCluster | 246 |
Sun Cluster | 246 |
Freequalizer | 246 |
|
Глава 9: Мониторинг Apache | 247 |
|
Журналы и протоколирование | 247 |
|
Файлы журналов и безопасность | 248 |
Журнал ошибок | 248 |
Установка уровня протоколирования | 248 |
Регистрация ошибок в системном журнале | 249 |
Журналы передачи данных | 250 |
Общий формат журналов | 251 |
Описание форматов журналов | 251 |
Специальные журналы | 253 |
Сбор дополнительных сведений о клиенте | 254 |
Специальные журналы с условиями | 254 |
Объединение нескольких журналов | 255 |
Анализ журналов | 256 |
tail -f | 256 |
Обработка журналов программами | 256 |
Программы наблюдения за журналами | 256 |
Анализаторы журналов | 257 |
|
Журналы и статистика | 257 |
|
Сведения, получаемые из журналов | 257 |
Последовательное обращение к страницам | 257 |
Наиболее и наименее популярные страницы | 257 |
Время работы со страницей | 258 |
Analog — анализатор журналов | 258 |
Построение и установка Analog | 258 |
Построение интерфейса форм Analog | 259 |
Конфигурирование Analog | 259 |
Указание файлов и форматов журналов | 259 |
Указание выходного файла | 260 |
Указание выходного формата и языка | 260 |
Указание псевдонимов | 261 |
Указание включений и исключений | 261 |
Указание генерируемых отчётов | 262 |
Указание длительности | 263 |
Указание внешнего вида | 264 |
Пример конфигурации Analog | 264 |
Выходные данные | 265 |
|
Информация о сервере | 266 |
|
Состояние сервера | 267 |
Активизация страницы состояния сервера | 267 |
Расширенное состояние сервера | 267 |
Обращение к странице состояния | 268 |
Информационная страница сервера | 269 |
Обеспечение безопасного доступа к информации о сервере | 270 |
|
Отслеживание пользователей | 271 |
|
Альтернативные методы отслеживания пользователей | 272 |
Отслеживание домашних данных с помощью mod_usertrack | 272 |
Активизация отслеживания пользователей | 272 |
Установка срока действия домашних данных | 273 |
Установка имени домашних данных | 273 |
Создание файла журнала для хранения информации о пользователях | 273 |
Указание года в домашних данных | 274 |
Отслеживание URL с помощью mod_session | 274 |
Построение и установка mod_session | 274 |
Установка ключа сеанса | 274 |
Указание года в домашних данных mod_session | 275 |
Управление доступом с помощью точек входа» | 275 |
Указание точек входа | 275 |
Освобождение файлов от управления сеансами | 275 |
Освобождение клиентов от управления сеансами | 276 |
Освобождение запросов HTTP по заголовку | 276 |
Протоколирование информации о сеансах | 277 |
Запрещение отслеживания домашних данных | 277 |
Добавление информации о сеансах в указатели URL | 277 |
Другие средства слежения за сеансами | 277 |
|
Глава 10: Безопасность Apache | 278 |
|
Аутентификация пользователей | 278 |
|
Модули аутентификации Apache | 279 |
Требования к конфигурации аутентификации | 280 |
Директива AuthName, описывающая имя (сферу деятельности) | 280 |
Директива AuthType, описывающая механизм аутентификации | 280 |
Директива, указывающая тип и источник аутентификации | 280 |
Необязательная директива, описывающая группы пользователей | 280 |
Директива, указывающая разрешённых пользователей для области |
хранения данных | 280 |
Необязательная директива, определяющая достаточность | 280 |
Использование директив аутентификации в файлах .htaccess | 281 |
Базовая аутентификация | 281 |
Алгоритм базовой аутентификации | 282 |
Кодовая аутентификация | 283 |
Анонимная аутентификация | 283 |
Предоставление информации о пользователях | 284 |
Работа с информацией о пользователях в файлах | 284 |
Работа с информацией о пользователях в базах данных DBM | 284 |
Работа с информацией о пользователях в файлах дайджестов | 286 |
Указание требований для пользователей | 286 |
Указание разрешённых пользователей и групп | 286 |
Проверка подлинности по методу HTTP | 287 |
Использование нескольких схем аутентификации | 287 |
Объединение аутентификации пользователей и хостов | 288 |
Защита базовой аутентификации с помощью SSL | 289 |
|
SSL и Apache | 289 |
|
Получение OpenSSL и mod_ssl | 290 |
Построение и установка библиотеки OpenSSL | 290 |
Построение OpenSSL как динамически компонуемых библиотек | 292 |
Указание платформы и компилятора явным образом | 292 |
Построение OpenSSL с помощью инструментария RSAREF | 293 |
Построение и установка mod_ssl | 293 |
Использование конфигурационного сценария Apache вместе с mod_ssl | 294 |
1. Построение OpenSSL (и, возможно, RSAREF) | 294 |
2. Внесение заплат в исходный текст Apache | 294 |
3. Подготовка других модулей | 294 |
4. Конфигурирование и построение Apache с заплатами EAPI | 295 |
5. Построение и установка mod_ssl с помощью apxs | 295 |
Базовая конфигурация SSL | 295 |
Установка частного ключа | 296 |
Создание сертификационного запроса и временного сертификата | 297 |
Получение подписанного сертификата | 299 |
Расширенная конфигурация SSL | 299 |
Конфигурация уровня сервера | 299 |
Определение источника случайных данных | 299 |
Управление паролями при запуске | 301 |
Кэш сеанса SSL | 301 |
Управление каталогами | 302 |
Принудительное использование SSL с помощью SSLRequireSSL | 303 |
Управление произвольным доступом с помощью SSLRequire | 303 |
Сохранение сеансов вне конфигураций по каталогам | 304 |
Объединение SSL с аутентификацией | 305 |
Протоколы и наборы шифров | 305 |
Алгоритмы подстановки ключей | 306 |
Методы аутентификации | 306 |
Методы шифрования | 307 |
Типы дайджестов | 307 |
Дополнительные псевдонимы | 307 |
Сертификация клиентов | 308 |
Применение сертификации клиентов с аутентификацией пользователей | 310 |
SSL и протоколирование | 311 |
Переменные среды SSL и интерфейс CGI | 312 |
SSL и виртуальные хосты | 315 |
|
Повышение безопасности web-сервера | 316 |
|
Свойства Apache | 317 |
Ненужные файлы | 317 |
Автоматические индексы каталогов | 317 |
Условные ссылки | 317 |
Серверные включения | 318 |
Каталоги пользователей | 318 |
Полномочия на файлы | 319 |
Исследование информации о сервере с помощью mod_info | 319 |
Ограничение привилегий сервера | 319 |
Ограничение доступа по хост-имени и IP-адресу | 320 |
Другие средства защиты сервера | 321 |
Выделенный сервер | 322 |
Ограничение деятельности служб | 323 |
Запрещение сетевых служб | 324 |
File Transfer Protocol (FTP) | 324 |
Telnet | 324 |
rlogin, rsh, rexec, rcp | 324 |
Network Filesystem (NFS) | 324 |
Sendmail | 324 |
Ограничение служб с помощью оболочек TCP | 324 |
Вопросы безопасности и ресурсы Интернета | 325 |
WWW Security FAQ на www.w3.org/Security/Faq/ | 325 |
Список рассылки и архив BugTraQ на www.security-focus.com | 325 |
SecurityPortal на www-securityportal.com | 325 |
Информационные бюллетени операционных систем | 325 |
Перенос важных данных с сервера | 326 |
Разрешение безопасного входа в систему с помощью SSH | 326 |
Получение SSH | 326 |
Построение и установка SSH | 327 |
Методы аутентификации | 328 |
Конфигурирование SSH | 328 |
Создание пары ключей для сервера | 328 |
Распространение открытого ключа | 329 |
Конфигурирование демона sshd | 330 |
Тестирование SSH | 331 |
Расширение SSH для аутентификации пользователей | 331 |
Расширение SSH для других целей | 332 |
|
Брандмауэры и многосторонние серверы | 332 |
|
Типы брандмауэров | 333 |
Проектирование топологии сети | 333 |
Размещение сервера вне брандмауэра | 333 |
Размещение сервера внутри брандмауэра | 333 |
Размещение сервера на сервере брандмауэра | 334 |
Размещение сервера в демилитаризованной зоне | 334 |
Директивы модуля mod_ssl | 335 |
|
Глава 11: Расширение Apache | 337 |
|
mod_perl | 337 |
|
Построение и установка mod_perl | 338 |
Управление работой mod_perl | 339 |
Описание обработчиков Perl | 341 |
Грамматический разбор заголовков и небуферизованный вывод | 343 |
Инициализация модулей при запуске | 344 |
Перезапуск mod_perl при перезапуске Apache | 344 |
Создание страницы состояния mod_perl | 345 |
Выполнение сценариев CGI под управлением modjperl | 345 |
Замечания по поводу CGI | 347 |
Версии | 347 |
Ключи командной строки | 347 |
Пространство имён | 347 |
Нежелательные функции Perl | 347 |
Тестирование из командной строки | 348 |
Входные и выходные данные | 348 |
Регулярные выражения | 348 |
Передача переменных обработчикам Perl | 348 |
Использование mod_perl с серверными включениями | 348 |
Встраивание Perl в HTML | 349 |
Встраивание Perl в конфигурацию Apache | 350 |
|
Конфигурирование Apache с PHP | 352 |
|
Установка PHP | 353 |
Установка PHP в UNIX | 353 |
Использование сценария установки | 353 |
Использование сценария configure | 355 |
Компиляция PHP и конфигурирование Apache | 356 |
Установка PHP в Windows | 357 |
Конфигурирование Apache для использования PHPЗ | 357 |
Проверка установки Apache | 358 |
Конфигурационные файлы и директивы | 358 |
Конфигурационный файл PHP | 358 |
Директивы Apache | 359 |
Параметры | 359 |
Поиск и устранение неполадок | 360 |
Безопасность | 361 |
Заключение | 361 |
|
Конфигурирование Apache JServ | 362 |
|
Введение | 362 |
Архитектура | 363 |
Базовая установка | 364 |
Требования | 364 |
UNIX | 365 |
Windows | 366 |
Установка эталонного сервлета | 366 |
Конфигурационные файлы и директивы | 369 |
Полная базовая конфигурация | 369 |
Синтаксис файлов свойств | 370 |
Директивы Apache | 371 |
ApJServAction | 372 |
ApJServDefaultHost | 372 |
ApJServDefauftPort | 372 |
ApJServDefaultProtocol | 372 |
ApJServLogFile | 372 |
ApJServManual | 372 |
ApJServMount | 373 |
ApJServMountCopy | 373 |
ApJServProperties | 374 |
ApJServProtocolParameter | 374 |
ApJServSecretKey | 374 |
Свойства двигателя | 375 |
log | 375 |
log.file | 376 |
log.timestapm | 376 |
log.dateFormat | 376 |
port | 376 |
security.allowedAddresses | 377 |
security.challengeSize | 377 |
security.authentication | 377 |
security.secretKey | 377 |
security.maxConnections | 377 |
security.selfservlet | 377 |
wrapper.bin | 377 |
wrapper.bin.parameters | 377 |
wrapper.class | 378 |
wrapper.class.parameters | 378 |
wrapper.classpath | 378 |
wrapper.env | 378 |
wrapper.env.copy | 378 |
wrapper.env.copyall | 378 |
wrapper.path | 379 |
wrapper.protocol | 379 |
zones | 379 |
autoreload.classes | 379 |
autoreload.flle | 379 |
destroy.timeout | 380 |
init.timeout | 380 |
servlet.пceвдoним.code | 380 |
servlet.имя.initArgs | 380 |
servlets.default.initArgs | 380 |
servlets.startup | 381 |
session.timeout | 381 |
session.checkFrequency | 381 |
singleThreadModelServlet.initialCapacity | 381 |
singleThreadModelServlet.incrementCapacity | 381 |
Добавление и выполнение сервлетов | 381 |
Путь к классам и перезагрузка классов | 382 |
Добавление зон сервлетов | 384 |
Отображение указателей URL | 385 |
Виртуальные хосты | 386 |
Функционирование Apache JServ | 388 |
Несколько машин JVM | 389 |
URL состояния | 392 |
Поиск и устранение неполадок | 393 |
Файлы журналов | 393 |
Трудности, возникающие при запуске | 395 |
Конфликты за порты | 395 |
Полномочия на файлы | 396 |
Отладка | 396 |
Безопасность | 397 |
Оптимизация производительности | 398 |
Заключение | 399 |
Ресурсы | 399 |
|
Приложение А: Полезные запросы RFC | 400 |
|
Приложение В: Варианты Apache | 402 |
|
Stronghold | 402 |
IBM HTTP Server, усиленный Apache | 402 |
WebTEN | 403 |
Apple MacOS X Server | 403 |
Red Hat Secure Web Server | 403 |
|
Приложение С: Лицензия Apache | 404 |
|
Приложение D: Переменные среды | 407 |
|
Стандартные переменные | 407 |
Переменные заголовков | 409 |
Собственные переменные Apache | 410 |
Переменные, устанавливаемые модулем mod_include | 410 |
Переменные среды специального назначения | 411 |
|
Приложение Е: Серверные включения | 412 |
|
Директивы | 412 |
Элементы timefmt | 414 |
Переменные | 415 |
Оценка условий | 415 |
|
Приложение F: Регулярные выражения | 416 |
|
Шаблоны поиска | 416 |
Шаблоны замены | 418 |
|
Приложение G: Модули Apache третьих фирм | 419 |
|
Модули аутентификации и управления доступом | 419 |
Модули для работы с динамическим содержимым | 421 |
Вспомогательные модули | 422 |
Модули, связанные с оптимизацией производительности | 423 |
Модули для обеспечения безопасности | 423 |
|
Приложение Н: Заголовки HTTP и коды состояния | 424 |
|
Коды состояния | 424 |
|
Информационные коды (1ХХ) | 424 |
Успешное исполнение запроса клиента (2ХХ) | 425 |
Переадресация (ЗХХ) | 425 |
Незавершённость запроса клиента (4ХХ) | 426 |
Ошибки сервера (5ХХ) | 427 |
|
Заголовки HTTP | 427 |
|
Общие заголовки | 428 |
Заголовки запроса | 429 |
Заголовки ответа | 431 |
Сущностные заголовки | 431 |
|
Приложение I: Директивы, сгруппированые по модулям | 433 |
|
Приложение J: Директивы, сгруппированые по алфавиту | 456 |