IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Linux | Open source  >

Подготовка к экзамену LPI: Web-сервисы

Средний уровень администрирования (LPIC-2) тема 208

developerWorks
На предыдущую страницуСтраница 3 из 8 На предыдущую страницу

Опции документа

Выскажите мнение об этом учебном пособии

Помогите нам улучшить содержание


Внедрение web-сервера

Туча демонов

Запуск Apache похож на запуск любого другого демона. Обычно хочется поместить запуск в скрипт инициализации системы, однако, в принципе, можно запускать Apache в любое время. В большей части систем сервер Apache называется httpd, хотя он может вместо этого называться и apache2. Вероятнее всего, сервер установлен в /usr/sbin/, но возможны и другие расположения, в зависимости от вашего дистрибутива и от того, как вы установили сервер.

Чаще всего Apache запускается без опций, хотя об опциях -d serverroot и -f config следует помнить. Первая позволяет указывать расположение локального каталога, откуда поставляется содержимое; вторая позволяет указывать конфигурационный файл, отличный от используемого по умолчанию. Файл конфигурации может отменять опцию -f с помощью директивы ServerRoot. По умолчанию, конфигурационными файлами являются либо apache2.conf, либо httpd.conf, в зависимости от установок при компиляции. Эти файлы, скорее всего, располагаются в /etc/apache2/, /etc/apache/, /etc/httpd/conf/, /etc/httpd/apache/conf, или в каких-нибудь других местах, в зависимости от версии, дистрибутива Linux, и от того, как вы установили и скомпилировали Apache. Вызов man apache2 или man httpd должен выдать вам системно-зависимые подробности.

Демон Apache отличается от других серверов тем, что он обычно создает несколько выполняющихся копий самого себя. Первичная копия просто порождает остальных, в то время как эти вторичные копии и обслуживают входящие запросы. Целью наличия множества запущенных копий является создание набора обработчиков на случай нескольких одновременных запросов к серверу; при необходимости могут запускаться дополнительные копии демона в соответствии с параметрами конфигурации. Первичная копия обычно запускается от root, но остальные копии по соображениям безопасности запускаются как более ограниченный пользователь. Например:


Listing 1. The многоликость выполняющихся копий Apache
                    
# ps axu | grep apache2
root      6620     Ss   Nov12   0:00 /usr/sbin/apache2 -k start -DSSL
www-data  6621     S    Nov12   0:00 /usr/sbin/apache2 -k start -DSSL
www-data  6622     Sl   Nov12   0:00 /usr/sbin/apache2 -k start -DSSL
www-data  6624     Sl   Nov12   0:00 /usr/sbin/apache2 -k start -DSSL
dqm        313     S+   03:44   0:00 man apache2
root       637     S+   03:59   0:00 grep apache2

На большом числе систем ограниченным пользователем является nobody. В Listing 1 это -- пользователь www-data.



В начало


Включение конфигурационных файлов

Как уже упоминалось, поведение Apache определяется директивами в его конфигурационном файле. Для систем Apache2, главный конфигурационный файл, скорее всего, находится в /etc/apache2/apache2.conf, но часто этот файл содержит многочисленные Include statements для добавления информации о конфигурации из других файлов, возможно, даже с шаблонами. В общем случае, конфигурация Apache, вероятно, содержит сотни директив и опций (большая часть которых не описывается в этом пособии).

В частности, несколько файлов, вероятно должны быть включены. Можно взглянуть в настройки "пользователей" файла httpd.conf, для использования прежних Apache 1.3 файлов конфигурации, использующих то же имя. Виртуальные хосты обычно задаются в отдельных конфигурационных файлах, соответствующих шаблону, например, вот так:


Listing 2. Задание виртуальных хостов
                    
# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/[^.#]*

При использовании Apache 2.x, модули обычно тоже определяются в отдельных конфигурационных файлах (более часто в том же файле в 1.3.x). Например, в моей системе включения таковы:


Listing 3. From /etc/apache2/apache2.conf
                    
# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

Фактически использование модуля в запущенном сервере Apache требует два шага в файле конфигурации, оба загружающих и и активирующих его:


Listing 4. Загрузка дополнительного модуля Apache
                    
      # cat /etc/apache2/mods-enabled/userdir.load
      LoadModule userdir_module /usr/lib/apache2/modules/mod_userdir.so
      # cat /etc/apache2/mods-enabled/userdir.conf
      <IfModule mod_userdir.c>
          UserDir public_html
          UserDir disabled root

          <Directory /home/*/public_html>
              AllowOverride FileInfo AuthConfig Limit
              Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
          </Directory>
      </IfModule>

Шаблоны в строках Include вставят все файлы .load и .conf в каталоге /etc/apache2/mods-enabled/

Обратите внимание на общую мысль: Основные директивы -- это команды в одну строку с некоторыми параметрами; более сложные директивы используют XML-льный тег открыть/закрыть для вложенных команд. Является ли директива однострочной или же стиль открыть/закрыть, следует знать -- по своему усмотрению стили выбирать нельзя.



В начало


Файлы журнала

Важный класс директив конфигурации касается журналирования действий Apache. Можно задавать различные типы информации и степени детализации для операций Apache. Ведение журнала ошибок всегда приветствуется; это можно задать одной директивой:


Listing 5. Задание журнала ошибок
                    
# Global error log.
ErrorLog /var/log/apache2/error.log

Можно добавить другие журналы для записи обращений к серверу, ссылающего сайта, и другой информации, удовлетворяющей вашим индивидуальным целям. Операция журналирования настраивается двумя директивами. Сначала директива LogFormat использует набор специальных переменных для задания, того, что помещать в файл журнала; затем, директива CustomLog говорит Apache actually записывать события в указанном формате. Можно задать бесчисленное число форматов невзирая на то, используются ли они на самом деле. Это позволяет включать и выключать журналирование подробностей, в зависимости от меняющихся потребностей.

Переменные в LogFormat похожи на переменные оболочки, но имеют в начале %. Некоторые переменные состоят из одной буквы, в то время как другие имеют длинные имена, окруженные скобками, как показано в Listing 6.


Listing 6. Переменные LogFormat
                    
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog /var/log/apache2/referer_log combined

Обратитесь к книге с полной документацией Apache за списком всех переменных. Широко используются следующие: %h для IP-адреса клиента, выполняющего запрос, %t для дати и времени запроса, %>s для HTTP статуса кода, и написанный с ошибкой %{Referer} для адреса ссылающего сайта, на котором есть ссылка на обрабатываемую страницу.

Имена, используемые в директивах LogFormat и CustomLog являются произвольными. В Listing 6 использовалось имя combined, но вместо нее могла стоять, например, myfoobarlog. Однако несколько имен являются общепринятыми и даются в образцах файлах конфигурации, такие как combined, common, referer, и agent. Эти специальные форматы зачастую поддерживаются утилитами, анализирующими log-файлы.



В начало



На предыдущую страницуСтраница 3 из 8 На предыдущую страницу
    IBM в России Конфиденциальность Контакты