Конфигурационные файлы Режимы работы сервера
Главный файл конфигурации (ГКФ) сервера содержит все параметры,
необходимые серверу для начала работы, а также пути других конфигурационных
файлов. По умолчанию, главный файл конфигурации сервера находится
в подкаталоге conf/ каталога и имеет имя httpd.conf.
При запуске серверу можно указать другой путь, используя ключ
-f.
Например:
/usr/local/sbin/httpd -f /etc/httpd.config
Ниже приведены параметры, указываемые в главном файле конфигурации
сервера, с необходимыми пояснениями. Значения параметров отделяются
от названия одним или несколькими пробелами или табуляциями. Если
одному параметру соответствуют несколько значений, они разделяются
запятыми.
Параметры запуска серверных процессов
Определяет способ запуска сервера:
ServerType inetd
серверный процесс запускается в ответ на каждое обращение клиента
через механизм inetd. После обработки запроса, сервер прекращает
свою работу.
ServerType standalone
серверный процесс запускается один раз и находится в состоянии
ожидания запросов клиентов. После обработки запроса, сервер остается
запущенным.
Определяет порт tcp, по которому сервер принимает запросы клиентов.
Этот параметр используется только для сервера типа standalone.
При механизме старта inetd порт определяется конфигурационным
файлом сервера inetd - inetd.conf.
Стандартный порт для WWW - сервера - 80.
Пример:
Port 80
Для режима standalone определяют количество процессов сервера
при многопоточной обработке. StartServers - указывает
число процессов сервера, создаваемых при запуске httpd. MaxServers
определяет максимальное число одновременно работающих процессов
сервера.
Пример:
StartServers 3
MaxServers 5
Определяет время (в секундах), которое серверный процесс, запущенный
в режиме standalone, будет
ожидать повторного обращения клиента. По умолчанию используется
1200 секунд.
Пример:
TimeOut 3600
Определяют имя пользователя и группу, права которого получает
сервер при запуске в режиме standalone. Изменение прав сервера
производится с целью предотвращения доступа WWW - клиентов к файлам
операционной системы, не являющимися общедоступными. Например:
User nobody
Group nobody
Информационные параметры для WWW - клиентов
Определяет имя сервера, которое пересылается клиенту вместе с
другими параметрами запроса. Используется в случае, если сервер
имеет несколько имен (синонимов).
Например:
ServerName Indy.cnit.nsu.ru
Определяет адрес электронной
почты администратора сервера. При возникновении каких - либо ошибок
в работе сервера, он выдает клиенту сообщение с просьбой проинформировать
о них администратора сервера по указанному Email.
Например:
ServerAdmin fancy@nsu.ru
Расположение необходимых файлов и каталогов
Определяет местоположение каталога ServerRoot. По
умолчанию, это /usr/local/etc/httpd
или измененное значение параметра HTTPD_ROOT файла src/config.h.
Например:
ServerRoot /var/httpd
Определяет местоположение файла - журнала ошибок, в который заносятся
все сообщения об ошибках, возникающих в процессе работы сервера.
Если значение не начинается со slash (/), подразумевается путь
относительно ServerRoot.
Например:
ErrorLog logs/errlog
Журналом ошибок является файл /var/httpd/logs/errlog
Определяет местоположение файла - журнала доступа, в который заносятся
данные обо всех передачах данных между WWW - клиентом и WWW -
сервером. Если значение не начинается со slash (/), подразумевается
путь относительно ServerRoot.
Например:
TransferLog logs/translog
Журналом доступа является файл /var/httpd/logs/translog
Определяет местоположение файла - журнала клиентов, в который
заносятся данные о программном обеспечении, используемом WWW клиентами
при доступе к данному серверу. Если значение не начинается со
slash (/), подразумевается путь относительно ServerRoot.
Например:
TransferLog logs/agentlog
Журналом клиентского программного обеспечения является файл /var/httpd/logs/agentlog
Определяет местоположение файла в который записываются все факты
обращений к данным сервера в виде ссылок от клиентов к данным.
Если значение не начинается со slash (/), подразумевается путь
относительно ServerRoot.
Например:
RefererLog logs/reflog
Журналом ссылок является файл /var/httpd/logs/reflog
Определяет местоположение файла, хранящего номер процесса запущенного
WWW - сервера. Используется для остановки работы сервера путем
посылки сигнала командой kill. Если значение не
начинается со slash (/), подразумевается путь относительно ServerRoot.
Например:
PidFile logs/httpd.pid
Номер процесса - сервера записывается при старте в файл /var/httpd/logs/httpd.pid
Определяет местоположение файла управления доступом. Если значение
не начинается со slash (/), подразумевается путь относительно
ServerRoot.
Например:
AccessConfig conf/access.conf
Определяет местоположение файла, содержащего список соответствий
расширений файлов ОС типам MIME. По умолчанию используется файл
conf/mime.types в каталоге, определяемом ServerRoot. Если не начинается
с backslash (/), подразумевается путь относительно ServerRoot.
Например:
TypesConfig /etc/mime.types
Определяет местоположение каталога, в который записывается файл
дампа памяти при возникновении сбоя.
Например:
CoreDirectory /tmp
Параметры протоколирования
Определяет, будут ли несколько протоколов записываться в один
файл (Combined) или каждый будет записан в свой
файл (Separate).
Например:
LogOptions Separate
Определяет имена серверов, обращения от которых не будут протоколироваться.
Например:
RefererIgnore Indy.cnit.nsu.ru
Другие режимы работы
Определяет интенсивность обращений WWW сервера к серверу имен
Интернет. Minimum означает,
что сервер будет обращаться к DNS только при необходимости проверить
ограничения доступа по домену. Standard означает,
что сервер будет обращаться к серверу имен каждый раз при обработке
запроса клиента. Maximum означает, что сервер будет
дважды обращаться к серверу имен при каждой обработке запроса.
Например:
DNSMode Standard
Процедура определения конфигурации сервера
После запуска основного серверного процесса сервер пытается открыть
главный конфигурационный файл. Этот файл ищется по умолчанию в
каталоге /usr/local/etc/http/conf с именем httpd.conf.
Умолчание можно изменить при сборке системы редактированием файла
src/config.h. За каталог отвечает параметр HTTPD_ROOT,
за имя файла - параметр SERVER_CONFIG_FILE. Изменить значения
по умолчанию можно при запуске сервера, указав ключи -h
и-f (см. выше).
Местоположение файлов конфигурации доступа, документов, типов
MIME, а также файлов журналов сервер получает из главного конфигурационного
файла. Если каких - либо параметров там нет, их значения берутся
по умолчанию (см. src/config.h).
Конфигурация ресурсов
Расположение файлов данных, их интерпретация сервером и поведение
сервера при обращении к разным типам файлов определяются параметрами
файла конфигурации ресурсов. Ниже приведен список основных параметров
с пояснениями.
Определяет каталог локальной файловой системы,
от которого начинается отсчет виртуального пути URL.
Например:
DocumentRoot /apply/www
Определяет название публичного подкаталога пользователей. ПО WWW
- сервера позволяет обеспечить внешний доступ к гипертекстовым
документам пользователей базовой операционной системы. Для этого
пользователям необходимо создать в своем домашнем каталоге подкаталог
с именем, определяемым параметром UserDir. После
этого все обращения по URL:
http://<имя_сервера>/~<имя_пользователя_ОС>
будут транслироваться в реальный путь до подкаталога, определенного
параметром UserDir в домашнем каталоге пользователя <имя_пользователя_ОС>.
Например:
UserDir public_html
при этом при обращении по URL
http://www.nsu.ru/~fancy/index.html
сервер будет искать файл Index.html в подкаталоге
public_html/ домашнего каталога пользователя fancy.
Переадресует запрос к одной иерархии в запрос к другой иерархии,
возможно расположенной на другом сервере.
Например:
Redirect /HTTPd/ http://hoohoo.ncsa.uiuc.edu/
Определяет синоним для документа или каталога на локальном сервере.
Пример:
Alias /icons /var/opt/images
Определяет синоним для каталогов, содержащих CGI - программы.
Пример:
ScriptAlias /hrv-cgi /var/opt/cgi
Определяет имена файлов, трактующихся сервером как индексные.
Их содержимое выдается сервером при обращении к данному каталогу.
Пример:
DirectoryIndex index.html index.htm index.cgi
Определяет имя файла, трактующегося сервером как файл управления
доступом (см. раздел ).
Пример:
AccessFileName .htaccess