Колисниченко Д.Н. - Linux-сервер своими руками (1077324), страница 67
Текст из файла (страница 67)
С ее помощью можно установить реакциюна любую ошибку сервера, например, на ошибку 404 (документ не найден).8. Директивы перенаправления: Redirect, Alias и ScriptAlias.9. Директивы для работы с многоязычными документами: AddLanguage иLanguagePriority.10. Директивы обработки MIME-типов.
Настроить свой сервер для обработкиразличных MIME-типов можно с помощью директив DefaultType,AddEncoding, AddType, AddHandler и Action.11. Директивы создания виртуальных узлов: VirtualHost, Listen, BindAddress.Все эти директивы редактировать вам вряд ли придется — нужно будетзадать только значения директив ServerName и ServerAdmin. По умолчаниюостальные директивы содержат вполне разумные значения. Далее приведеноописание директив, используемых в файле httpd.conf.ServerName — директива, которая определяет имя сервера Apache. Причем,здесь должно быть задано официальное имя сервера в таком виде, в которомоно должно появляться в адресной строке браузера. Данное имя должнобыть зарегистрировано на сервере DNS вашей сети.ServerType — директива, которая определяет тип сервера.
По умолчанию используется значение standalone. Если вы хотите достичь максимальной производительности вашего Web-сервера, не изменяйте эту опцию.Сервер Apache для каждого соединения запускает отдельную копию,которая будет обрабатывать запросы клиента. Управлять запущенными копиями позволяют директивы StartServers, MinSpareServers, MaxSpareServers.StartServers, MaxSpareServers, MinSpareServers. Как уже отмечалось выше, длякаждого нового соединения создается новая копия процесса сервера. Директива StartServers задает количество копий, которые будут созданы при запускеисходной копии сервера.
При этом исходная копия сервера получает запросыи передает их свободным копиям. Это позволяет равномерно распределитьнагрузку между отдельными процессами и повысить производительность сервера, однако на практике все не так хорошо, как хотелось бы. Существенногоприроста производительности можно добиться только в случае большой загрузки сервера. По умолчанию запускается пять копий сервера.Если число поступающих запросов превышает количество запущенныхкопий сервера, запускаются дополнительные процессы-серверы. Эти процессы не завершаются после обработки своего запроса, а продолжают находитьсяв памяти.
Директива MaxSpareServers позволяет указать максимальное числотаких процессов. Если это количество превышено, то лишние процессызавершаются. Если количество «серверов на подхвате» меньше, чем заданодирективой MinSpareServers, запускаются дополнительные копии.Для работы этих директив необходимо, чтобы сервер был запущен вавтономном режиме.6.282Сервер ApachePort — директива, задающая номер порта, который будет использоваться дляустановки соединения.
По умолчанию используется порт 80. Если вы хотитезапустить сервер Apache с использованием этого или любого другого порта,номер которого меньше 1024, вы должны обладать правами суперпользователя. Но даже если у вас нет таких прав, вы можете запустить сервер дляработы с портом, номер которого превышает значение 1024. Обычно используется номер 8080 или 8000.HostnameLookups on | off. Сервер Apache ведет журнал доступа других компьютеров.
Если вы включите данную опцию (on), то в журнал будет записанодоменное имя компьютера-клиента. Если эта опция выключена (off), вжурнал будет записан IP-адрес клиента. Включение данной опции замедляетработу сервера, так как требуется дополнительное время на ожидание ответаот сервера DNS.User и Group. Директивы User и Group определяют идентификаторы пользователяи группы, от имени которых будет работать сервер. Данные идентификаторыприсваиваются серверу, если он запущен в автономном режиме.
Можноиспользовать как имена пользователей, так и их числовые эквиваленты —UID. По умолчанию используется имя пользователя nobody. Из соображенийбезопасности не рекомендуется изменять это значение и присваивать имяреального пользователя. В этом случае Web-сервер получит доступ только ктем файлам, которые разрешены для чтения всем пользователям. Нужнозаметить, что указанный пользователь и группа должны существовать в вашейсистеме.
Ни в коем случае не запускайте сервер от имени пользователя root!ServerAdmin — директива, которая задает электронный адрес Web-мастера вашего Web-узла. Если возникнут какие-то проблемы, связанные с работой сервера, то по этому адресу будет отправлено соответствующее сообщение. Обычноиспользуется значение webmaster@Your_Host.com. Пользователь webmaster, какправило, не существует реально в системе. Для определения имени (псевдонима) webmaster используется файл псевдонимов электронной почты/etc/aliases. Данный файл используется для определения псевдонимовпользователей (см. приложение А). Формат файла /etc/aliases следующий:псевдоним: имяПосле модификации этого файла нужно ввести команду newaliases.
Данную команду нужно вводить, зарегистрировавшись в системе как суперпользователь.ServerRoot — в этой директиве указывается местонахождение файлов конфигурации сервера Apache. По умолчанию для этих целей используется каталог/etc/httpd.BindAddress. Данная директива используется для поддержки виртуальных хостови применяется для сообщения серверу, какой IP-адрес следует прослушивать. Значением данной директивы может быть «*» (любой адрес), IP-адресили полное имя домена.ErrorLog и TransferLog — эти директивы определяют расположение журналовсервера Apache.
Обычно для этих целей используется каталог /etc/httpd/logs, который является ссылкой на каталог / v a r / l o g / h t t p d или на283Сервер Apacheлюбой другой. В журнале errorlog протоколируются диагностические сообщения, а также сообщения об ошибках, которые порождают CGI-сценарии.В журнале transferlog протоколируются запросы клиентов. Если включенадиректива HostNameLookups, то вместо IP-адреса клиентов будут регистрироваться имена компьютеров.PidFile - - с помощью этой директивы указывается имя файла, в которомисходный процесс сервера будет регистрироваться. Этот файл содержит свойидентификатор процесса (РШ). Данную информацию можно использоватьдля останова или перезапуска сервера при написании собственных сценариев.
Данный файл будет создан, только если сервер Apache запущен в автономном режиме.CacheNegotiatedDocs — данная директива позволяет прокси-серверу, напримерSQUID, не кэшировать документы, которые не генерируются автоматически, то есть в процессе выполнения различных сценариев. Согласно протоколу НТТР/1.0, сервер Apache с каждым пакетом посылает заголовок Pragma:no-cache прокси-серверу, что позволяет отключить кэширование документов(в протоколе НТТР/1.1 вместо Pragma используется Cache-Control).
Если вывключите данную директиву, то вы разрешите прокси-серверу кэшироватьдокументы. К сожалению, далеко не все прокси-серверы отключают кэширование после получения данного заголовка. При написании своего CGIсценария, вам, скорее всего, придется самому выводить заголовок Pragma(или Cache-Control) и мета-тэги, которые указывают на дату последнегообновления документа.Timeout — задает промежуток времени в секундах, в течение которого серверпродолжает попытки возобновления приостановленной передачи данных.Значение директивы Timeout распространяется не только на передачу, но ина прием данных.
Если вам нужно получать большие файлы, рекомендуюувеличить данное значение.KeepAIive — разрешает постоянные соединения, то есть такие соединения, вкоторых производится более одного запроса за один раз.KeepAliveTimeOut — данная директива определяет таймаут для постоянногосоединения.MaxClients. Иногда поступающих запросов настолько много, что компьютеру нехватает ресурсов для загрузки новых копий сервера в память и их выполнения.
Директива MaxClients (значение по умолчанию — 150) определяет максимальное число копий сервера, которые могут выполняться одновременно.MaxRequestsPerChild. После обработки определенного количества запросов, указанного в директиве MaxRequestsPerChild, копия сервера завершается, авместо нее запускается новая.Listen — позволяет вам связывать Apache с определенным IP-адресом и (или)дополнительными портами.DocumentRoot — директива, определяющая местонахождение корневого каталога документов вашего сервера.UserDir — эта директива задает названия подкаталога в домашнем каталогепользователя, из которого берутся документы.
В этом случае, вы активизи284Сервер Apacheруете возможность использования пользовательских каталогов. Если вы нехотите включать эту возможность, укажите UserDir DISABLED. Более подробно эта директива будет рассмотрена позже.Directorylndex — позволяет задать название документа, который будет возвращен по запросу, который не содержит имя документа. С помощью даннойдирективы можно задать несколько имен файлов. Значениями по умолчанию являются index.html index.php index.htm index.shtml index.cgi Default.htmdefault.htm index.php3. Например, если вы введете в строке адреса браузераhttp://localhost, то будет возвращен один из указанных в директивеDirectorylndex документов.Fancylndexing.
При получении запроса, не содержащего имя документа, серверпередаст один из файлов, указанных в директиве Directorylndex. Если такойфайл не существует, клиенту будет возвращено оглавление каталога. Привключении директивы Fancylndexing, в оглавлении каталога будут использованы значки и описания файлов. Если директива Fancylndexing выключена,оглавление будет представлено в более простом виде.AddlconByType — сопоставляет значок с типом файла. Значок будет использоваться при выводе каталога, если включена директива Fancylndexing.
Директива AddlconByType имеет следующий формат:AddlconByType ( T E X T , URL) mime-typeПараметр TEXT определяет текстовое описание типа, которое увидятпользователи, использующие текстовый браузер или пользователи, у которыхотключено отображение рисунков. Параметр URL определяет адрес значка, апараметр mime-type — это тип файла, с которым нужно сопоставить значок.Полный перечень MIME-типов приведен в файле apache-mime.types. Вкачестве имени файла можно задать не только MIME-тип, но и символы,которыми заканчивается имя файла (см.