|
| ||||||||||||
| ||||||||||||
Глава 3. Установка и администрирование WWW -сервераЕвгений Фаддеенков 3.1 Введение 3.2Общая часть
3.3Сервер NCSA
3.1 ВВЕДЕНИЕ
Широкие возможности WWW - технологии по представлению пользователям
Internet информации, включая текст, картинки, графики, видео и звуковые дорожки,
обусловили процесс бурного роста сети WWW - серверов и Internet
в целом. Целью данного пособия является освещение технологии работы
и процессов установки и администрирования WWW - сервера, т.е.
той части сети, которая отвечает за предоставление гипертекстовой
информации по запросам пользователей сети. 3.2 ОБЩАЯ ЧАСТЬ3.2.1 Назначение WWW - сервера. Общая схема работы. ОпределениеWWW сервер - это такая часть глобальной или внутрикорпоративной сети, которая дает возможность пользователям сети получать доступ к гипертекстовым документам, расположенным на данном сервере. Для взаимодействия с WWW сервером пользователь сети должен использовать специализированное программное обеспечение - броузер (от англ. browser), другое название - программа просмотра.
Рассмотрим более подробно, чем в предыдущих главах, схему работы WWW-сервера. В общем виде она выглядит так:
В первом и третьем случае происходит обращение за новым документом.
Как было описано в главе 2, адрес документа указывается в виде специальной строки, называемой URL. Для протокола HTTP, используемого при взаимодействии WWW клиента и WWW сервера, URL состоит из следующих компонент:
Например:
Здесь http означает протокол работы с WWW - сервером
Из общей схемы работы видно, что функции WWW сервера заключаются в следующем:
В общем случае, WWW - сервером будем называть программно - аппаратный комплекс, предназначенный для выполнения вышеперечисленных действий.
В настоящее время все известные WWW - серверы представляют собой компьютер общего назначения с многозадачной операционной системой. Один или несколько процессов такой системы отвечают за поддержку специфических для WWW - сервера функций. Другие процессы ОС отвечают за обеспечение других функций, не обязательно связанных с поддержкой технологии WWW (см. рис. 3-3).
![]() Такая структура приводит к тому, что под WWW сервером начинают подразумевать только часть программного обеспечения, единственными функциями которой являются функции WWW сервера, а остальную часть - компьютер, операционную систему, другие процессы, сетевую структуру называют средой работы WWW сервера или платформой. Ниже приведена таблица 3-1, содержащая список наиболее распространенных платформ для WWW - сервера. Таблица 3-1
3.2.2 Непосредственные функции сервера. Базовые определенияВ простейшем случае гипертекстовый документ представляет собой совокупность файлов. Представление этих файлов как единого документа производится броузером. По каждому файлу документа броузер делает запрос к WWW - серверу. Таким образом, сервер не имеет представления о структуре и составе документов, он отвечает только за выдачу локальных файлов по запросам. На различных платформах, в различных операционных системах пути файлов выглядят по разному.
Например:
Путь файла, указываемый в URL, имеет стандартный вид: /<имя_каталога>/ ... /<имя_каталога>/<имя_файла>
Таким образом, в функции WWW - сервера входит преобразование адреса
из внешнего единого формата в платформенно ориентированный внутренний
формат. Появляется ряд понятий,
специфичных для такого преобразования, необходимых для него.
Это каталог реальной файловой системы сервера, от которого идет вычисление пути, указанного в URL. Например, если исходным каталогом документов является D:\Documents\HTML\, то на запрос к этому серверу документа по URL http://<имя_сервера>/index.htm будет возвращен файл D:\Documents\HTML\index.htm
В случае, когда необходимо осуществить обращение к конкретному каталогу или файлу, находящемуся вне иерархии Исходного каталога документов, используется механизм синонимов. Синоним позволяет явно определить соответствие между путем, указанным в URL, и путем локальной файловой системы.
Например:
синонимом для /test/myfile.html объявляется C:\MYDIR\FILE.HTM В первом случае все обращения к файлам каталога /Harvest будут обрабатываться в каталоге /projects/www/harvest. Второй пример показывает работу синонима с конкретным файлом файловой системы.
Для каждого сервера определено имя так называемого индексного файла. Обычно этот файл содержит ссылки на другие файлы данного каталога. Содержимое индексного файла выдается сервером в случае, если в URL указан каталог без конкретного файла.
Для многопользовательских операционных систем (таких как Unix) ПО WWW - сервера позволяет каждому пользователю предоставлять доступ к своему собственному набору гипертекстовых документов вне основной иерархии (Исходного каталога документов, Синонимов и т.д.). Этот набор документов должен находиться в собственном (т.н. "домашнем") каталоге пользователя. Для доступа к таким документам в URL перед путем ставится знак тильда и имя пользователя: ~<имя_пользователя>.
Например:
3.2.3 Протокол MIMEПротокол MIME - многоцелевое расширение электронной почты, был создан как способ передачи нетекстовой информации: изображений, звука, видео в письмах электронной почты. Механизм оказался удачным, и его перенесли и в on-line сервисы, в том числе WWW. Здесь MIME используется для передачи документов от сервера к клиенту. В общем виде MIME основывается на передаче вместе с основными данными дополнительной информации, описывающей что это и в каком виде передается. Эта дополнительная информация называется заголовок MIME. Базовой частью заголовка является строка, описывающая тип передаваемого сообщения. Формат строки: Content-Type: <тип_MIME> Перечень типов MIME (т.е. видов передаваемых данных) постоянно пополняется и может быть дополнен даже пользователем для описания своего собственного вида данных. Формат типа MIME:
<Тип> / <Подтип> [ ;
<параметры> ]
Где <Тип> - определяет общий тип данных:
Например:
Для ведения специфичной обработки файлов различных типов и форматов на клиентской и серверной частях поддерживаются списки соответствий типов MIME и расширений файлов. Формат записи такого списка: <Тип>/<Подтип> <расширение1> ... <расширениеN> Эти списки сопоставляют всем файлам, имеющим определенные расширения, определенные типы MIME.
Например:
В первой строке всем файлам с расширением gif и giff приписывается
тип содержимого image/giff. Если для типа содержимого image/giff
определены специальные правила обработки (например,
отображение на экране в определенной области), то так будут обрабатываться
все файлы с расширениями gif и giff. 3.2.4 Протокол HTTPПротокол HTTP определяет язык запросов от WWW - клиента к WWW - серверу. Сам запрос состоит из следующих компонент:
<Заголовок>
где
Пример запроса:
Описывает запрос на получение файла index.html из корневого каталога документов сервера. 3.2.5 Интерфейс CGIПомимо доступа к статическим документам сервера существует возможность получения документов как результата выполнения прикладной программы. Такая возможность реализуется на сервере WWW благодаря использованию интерфейса CGI (Common Gateway Interface). Спецификация CGI описывает формат и правила обмена данными между ПО WWW сервера и запускаемой программой. Для инициирования CGI необходимо, чтобы в запрашиваемом URL был указан путь до запускаемой программы. ПО WWW сервера исполняет эту программу, передает ей входные параметры и возвращает результаты ее работы, как результат обработки запроса, клиенту. CGI - программой может являться любая программа локальной операционной системы сервера - в двоичном виде или в виде программы для интерпретатора (Basic, SH, Perl и т.д.). С целью облегчения администрирования CGI - программ, а также для удовлетворения требованиям безопасности CGI - программы группируются в одном или нескольких явно указанных серверу каталогах. По умолчанию это каталог cgi-bin в иерархии серверных каталогов, однако, его имя и положение могут отличаться.
Например:
Интерфейс CGI позволяет расширить границы применения WWW - технологии. CGI - программа может обрабатывать сигналы с датчиков установок, взаимодействовать с мощным сервером баз данных, переводить и т.п. Полное описание интерфейса и требований к приложениям, использующих его, приведены в главе 4 настоящего отчета. 3.3 СЕРВЕР NCSA
Национальный Центр по Суперкомпьютерным Приложениям (NCSA) Иллинойского
университета стал второй организацией после ЦЕРН, интенсивно взявшейся
за развитие WWW - технологии. Семейство ПО WWW - серверов NCSA
прошло длинный путь развития. Последние версии поддерживают все
современные возможности, включая виртуальные узлы, управление
доступом, параллельную обработку запросов и т.п. 3.3.1 Требования к ресурсамПрограммное обеспечение сервера NCSA представляет собой прикладное программное обеспечение, предназначенное для работы под ОС Unix. В зависимости от аппаратной платформы требуемый размер оперативной памяти и дискового пространства существенно изменяются. Для семейства "Unix для PC" (Solaris, SCO, UnixWare, Linux, BSD, BSDI), необходимо ориентироваться на 2 Mb оперативной памяти. Дисковое пространство, требуемое при установке, составляет около 2Mb, однако при планировании установки нужно учитывать, что при интенсивном доступе к серверу статистика доступа будет составлять до нескольких сот килобайт в день и нескольких десятков мегабайт в месяц. 3.3.2 Состав дистрибутива сервера NCSA. Варианты дистрибуцииСервер NCSA поставляется как в виде исходных текстов, так и в виде исполняемых модулей для различных операционных систем. Распакованный дистрибутив размещается в каталоге httpd_<номер версии>-<модификация> где <номер версии> - версия программного обеспечения WWW сервера, <модификация> - модификация текущей версии.
Например:
В этом каталоге содержатся следующие файлы и подкаталоги: README - текстовый файл для первоначального ознакомления. Содержит список всех значимых файлов и каталогов с объяснением их назначения. COPYRIGHT - текстовый файл с описанием лицензионного соглашения на использование ПО WWW - сервера NCSA. CHANGES - текстовый файл со списком изменений между различными версиями ПО сервера. Makefile - файл верхнего уровня для утилиты make. Содержит список команд, которые необходимо выполнить для сборки и установки ПО WWW - сервера. src - каталог с исходными текстами ПО сервера. conf - каталог, содержащий примеры конфигурационных файлов ПО сервера. icons - каталог, содержащий иконки, необходимые для работы сервера. cgi-bin - каталог, содержащий примеры CGI - программ. cgi-src - каталог, содержащий исходные тексты примеров CGI - программ.
support - каталог с программным обеспечением, не
являющимся часью ПО сервера, но полезным при работе с ним. 3.3.3 Процедура установки сервера NCSAДля запуска процедуры сборки и установки сервера необходимо в корневом каталоге сервера, описанном в предыдущем параграфе, запустить утилиту make. Для сборки сервера необходимо указать команде make аббревиатуру операционной системы: aix3, aix4, sunos, sgi4, sgi5, hp-cc, hp-gcc, solaris, netbsd, svr4, linux, next, ultrix, osf1, aux, bsdi. Полный список поддерживаемых систем можно получить, выполнив команду make без параметров. Каждая аббревиатура ассоциирована с конкретной операционной системой. Появление дополнительных параметров после дефиса указывает на специфику конкретной конфигурации в одной и той же ОС. Например, hp-cc и hp-gcc указывают на общий тип ОС - HP-UX, однако ориентированы на использование разных компиляторов - базового C - компилятора (cc) или GNU C (gcc). Для сборки сервера под ОС UnixWare необходимо использовать команду make svr4. Ряд основных параметров сервера - пути файлов, режимы работы задаются по умолчанию на этапе сборки. В случае, если нужна их корректировка под конкретные условия, необходимо отредактировать файл src/config.h. После сборки сервера необходимо разместить его компоненты в файловой системе. Исполняемый модуль сервера httpd размещается в каталоге серверных программ - /usr/local/sbin или /usr/sbin. Файлы конфигурации, журналы и стандартные cgi-программы размещаются в подкаталогах каталога, определяемого параметром ServerRoot. Обычно это /usr/local/etc/httpd, однако его можно изменить либо изменив параметр HTTPD_ROOT файла src/config.h, либо указав ключ -d при запуске сервера.
Например:
В каталоге, определяемом параметром ServerRoot, размещаются три подкаталога:
3.3.4 Конфигурационные файлы. Режимы работы сервераГлавный файл конфигурации (ГКФ) сервера содержит все параметры, необходимые серверу для начала работы, а также пути других конфигурационных файлов. По умолчанию, главный файл конфигурации сервера находится в подкаталоге conf/ каталога и имеет имя httpd.conf. При запуске серверу можно указать другой путь, используя ключ -f.
Например:
Ниже приведены параметры, указываемые в главном файле конфигурации
сервера, с необходимыми пояснениями. Значения параметров отделяются
от названия одним или несколькими пробелами или табуляциями. Если
одному параметру соответствуют несколько значений, они разделяются
запятыми. Параметры запуска серверных процессов
Информационные параметры для WWW - клиентов
Расположение необходимых файлов и каталогов
Параметры протоколирования
Другие режимы работы
Процедура определения конфигурации сервера После запуска основного серверного процесса сервер пытается открыть главный конфигурационный файл. Этот файл ищется по умолчанию в каталоге /usr/local/etc/http/conf с именем httpd.conf. Умолчание можно изменить при сборке системы редактированием файла src/config.h. За каталог отвечает параметр HTTPD_ROOT, за имя файла - параметр SERVER_CONFIG_FILE. Изменить значения по умолчанию можно при запуске сервера, указав ключи -h и-f (см. выше).
Местоположение файлов конфигурации доступа, документов, типов
MIME, а также файлов журналов сервер получает из главного конфигурационного
файла. Если каких - либо параметров там нет, их значения берутся
по умолчанию (см. src/config.h). Конфигурация ресурсов
Расположение файлов данных, их интерпретация сервером и поведение
сервера при обращении к разным типам файлов определяются параметрами
файла конфигурации ресурсов. Ниже приведен список основных параметров
с пояснениями.
3.3.5 Выполнение основных операций администрирования3.3.5.1 Контроль работоспособности сервераПроверка работоспособности сервера может осуществляться различными способами. На Unix - платформе, в режиме standalone, можно посмотреть список процессов, выделив среди них процессы с именем httpd:
#
ps -aef | grep httpd
Мы увидим несколько процессов, у одного из которых собственником является root, а у других - пользователь, определенный параметром User главного конфигурационного файла (ГКФ). Процесс с собственником root запускается первым. Он контролирует работу остальных процессов - серверов. По использованному процессорному времени (колонка 8 примера) можно судить о загруженности серверов. Если сервер работает в режиме inetd или необходимо проверить работоспособность сервера извне, нужно выполнить команду telnet, указав ей имя машины - сервера и номер порта. После установления соединения наберите команду GET /. Сервер должен выдать содержимое корневого каталога документов или индексного файла, находящегося в этом каталоге. Номер порта обычно равен 80. В режиме standalone он определяется параметром Port ГКФ. Для режима inetd он определяется парой файлов - services и inetd.conf, определяющих соответствие между входными tcp - портами и сервисами Unix. Например:
$ telnet www.cnit.nsu.ru
80
3.3.5.2 Обработка журналов
Время от времени возникает необходимость уменьшить размер файлов
статистики путем их удаления или переноса в другое место. Если
сервер находится в режиме inetd, можно свободно удалять и переносить
файлы статистики. Они снова создадутся по указанным в ГКФ путям.
Если же сервер работает в режиме standalone, эти файлы постоянно
открыты процессами - серверами. Удаление или перенос их не освободят
место на диске и не приведут к созданию новых файлов. Для корректной
работы с журналами в этом случае, необходима остановка работы
сервера. Необходимо "убить" процессы - серверы, перенести
файлы журналов и перезапустить сервер. "Убить" процессы
- серверы можно послав команду kill процессу с номером, указанном
в файле PidFile (см. параметры ГКФ). Пример последовательности
команд для выполнения такой операции: Для анализа файлов статистики существует большое количество программного обеспечения, делающего "вытяжку" из них в виде диаграмм, сравнительных таблиц и т.д. 3.3.5.3 Управление доступом
Сервер NCSA содержит гибкие средства управления доступом. С их
помощью можно централизованно или децентрализованно управлять
доступом, основываясь на структуре адреса WWW - клиента, создавать
пары имя/пароль для документов или целых подразделов, создавать
несколько пар имя/пароль. Управление доступом с использованием пар имя/пароль Для введения ограничений на доступ ко всем документам определенного каталога необходимо создать в этом каталоге файл управления доступом. Этот файл имеет фиксированное имя, определяемое параметром AccessFileName файла конфигурации доступа. По умолчанию, это файл .htaccess. Пример содержимого файла .htaccess
AuthUserFile /otherdir/.htpasswd
AuthUserFile указывает путь файла паролей, который должен находиться вне данного каталога. Limit GET ограничивает доступ по методу GET, предоставляя его только пользователю pumpkin. Для ограничения других методов доступа (например, в каталогах CGI) используется перечисление всех методов:
<Limit GET POST PUT>
Для создания файла паролей необходимо воспользоваться утилитой htpasswd, входящей в состав дистрибутива сервера:
htpasswd -c /otherdir/.htpasswd
pumpkin После запуска она дважды запросит пароль для пользователя pumpkin и создаст файл паролей /otherdir/.htpasswd. Использование нескольких пар имя/пароль Использование нескольких пар имя/пароль достигается путем описания группы, в которую входят несколько пользователей, и указания имени группы в операторе Limit.
Ограничение доступа по сетевому имени В этом случае управление доступом осуществляется на основе сравнения сетевого имени машины - клиента с заранее заданным образцом. Если выявится совпадение, начинают действовать специальные правила доступа. Пример ограничения доступа на чтение. Чтение разрешено всем пользователям машин домена cnit.nsu.ru:
Содержимое файла .htaccess:
Оператор order указывает порядок определения требований к доступу: сначала ограничения, затем разрешения. deny from all - сначала запрещает доступ для всех, allow from .cnit.nsu.ru - затем разрешает доступ для машин домена cnit.nsu.ru. Оператор AuthName задает имя данного ограничения доступа - произвольную комбинацию букв и цифр. Пример запрета на доступ для всех машин домена nstu.nsk.su: Содержимое файла .htaccess:
AuthUserFile /dev/null
3.3.6 Поддержка русскоязычных кодировокИсторически сложилось, что в России распространены несколько русскоязычных кодировок, в основном ориентированных на разные платформы. Наиболее известные из них:
Специалисты утверждают что всего в России имеют хождение 11 кодировок русского алфавита. Если Ваш WWW сервер ориентирован на использование внутри организации или его пользователями будет являться ограниченный круг людей с однотипными рабочими местами, Вы можете ограничиться одной кодировкой русскоязычной информации на сервере. Сложности возникают, когда Вы захотите расширить круг клиентов сервера. Вам необходимо будет организовать поддержку нескольких кодовых страниц для русскоязычных документов. Приведенный выше список из четырех кодировок удовлетворит более 99% всех возможных абонентов сервера. Вообще говоря, в составе языка HTML имеются теги, определяющие кодировку документа и должные позволить корректно прочитать документ в любой кодировке. Однако в связи с тем, что эти теги не поддерживаются ни одним из известных броузеров, надеяться на них не стоит. Возможно, в будущем эта ситуация изменится, и проблема с кодировками будет решена. Для поддержки нескольких кодовых страниц применяется множество методов, которые можно разбить на две группы:
|
|
CITForum © 1997–2025