...
...

Быстрый путь к Интранет Веб серверу. Apache и Linux упрощают задачу

Не так давно я, как обычно, работал за своим компьютером с ОС Linux, а мой коллега за соседним столом пытался установить широко известный Веб сервер на компьютер с популярной операционной системой. Время шло, и его надежды на успех таяли буквально на глазах. К концу дня Веб сервер, в основном, работал нормально, но мой коллега продолжал бороться с конфигурацией отдельных его частей. Мой товарищ не был новичком в этом деле, за его плечами было достаточно много опыта для создания Интранет Веб сервера. Разумеется, это не простая задача. Благодаря своему упрямству мой друг вышел победителем в этом сражении, но эта победа стоила ему нескольких седых волос и времени. Я решил выполнить такую же задачу по настройке Веб сервера на своем компьютере. Мой компьютер (486/66 с 16 Мб оперативной памяти и полугигабайтным SCSI жестким диском) уже имел установленный Веб сервер Apache. Шестью месяцами ранее я собрал этот компьютер из неиспользуемых деталей, разбросанных по нашей лаборатории, и установил на него операционную систему Red Hat Linux 4.2. Когда я собирал эту машину, я просто хотел продемонстрировать моим сослуживцам положительные качества этой операционной системы. Чего я сам не ожидал, так это того, что я сам буду поражен качеством комбинации ОС Linux и Веб сервера Apache в результате опытов моего друга.

Когда я установил Linux Red Hat 4.2 на свой компьютер, я просто выбрал установку Веб сервера Apache попутно с другими приложениями. Когда установка была завершена, я направил свой браузер на только что созданную машину и нашел дружественные Веб-странички, поставляемые от Red Hat и поясняющие, какой именно файл мне необходимо отредактировать, чтобы начать наполнение моего нового Веб сайта. Не потребовалось долгой возни с бесконечной настройкой различных параметров. Я только начал редактировать стартовый HTML файл и вскоре у меня получился новый сайт, демонстрирующий достоинства Linux.

Зачем нужен Интранет Веб сервер?

В то время, как корпорации по всему миру гонятся за волной Интернет, все большее количество компаний осознает, что им необходимо построить приличную сеть Интранет для нормального информационного обмена внутри одной организации. Традиционные бумажные документы могут быть доступны через локальный Интранет сервер. Новые возможности, такие, как поддержка местных телеконференций, облегчение поиска нужных документов, а также архивы аудио- и видеоданных делают информацию более доступной и повышают конкуренто-устойчивость организации.

В центре задач, связанных с организацией Интранет сети, находится создание эффективного и надежного Интранет Веб сервера. Даже беглый взгляд на технические решения, основанные на использовании коммерческого программного обеспечения, показывает, что решения эти весьма дороги.

Вот теперь настало время для торжества Linux и Apache! Комбинация надежной операционной системы Linux с лидером этой индустрии - Веб сервером Apache - создает гибкий вариант дешевого, высокофункционального Интранет Веб сервера. Использование Linux для решения корпоративных проблем - это одна из возможностей убедиться в том, что эта операционная система может обслуживать целую корпорацию.

Разумеется, Linux и Apache могут быть сконфигурированы в качестве высокоэффективного Интернет Веб сервера. Интернет сервер требует всех элементов хорошего Интранет сервера, плюс много чего еще. В частности, безопасность и производительность играют важнейшую роль в сценарии Интернет. Но задача установки Веб сервера в небольшой локальной сети может быть легко выполнима, особенно, если Вы используете дистрибутив Linux, который сделает всю работу за Вас.

Что, если Ваш дистрибутив Linux не включает Apache? У меня есть для Вас хорошая новость - Веб сервер Apache легко устанавливается на любой компьютер с ОС Linux. Можно настроить рабочий Веб сервер для Вашей сети Интранет всего за несколько минут и не будучи гением в технике.

Как установить

Установка Веб сервера Apache выполняется легко с использованием версий Linux, начиная с Red Hat 4.2, Debian 1.3.1. OpenLinux Base 1.x. Дистрибутив Debian задаст несколько вопросов при конфигурации (если Вы в чем-либо сомневаетесь, просто нажмите несколько раз клавишу <Enter> ), а Red Hat и OpenLinux содержат уже предварительно сконфигурированный вариант установки. У всех трех дистрибутивов процесс установки не требует ни предварительного опыта, ни значительного времени на установку.

Если в Ваш дистрибутив не включен модуль Apache, его исходники всегда доступны по адресу: http://www.apache.org. Вот пример команд (для версии Apache 1.2.5) для быстрой распаковки и установки программы:

tar xzf apache_1.2.5.tar.gz

cd apache_1.2.5/src/

./Configure

Если файлы конфигурации на Вашем компьютере содержатся в каталоге, отличном от обычно используемого по умолчанию /usr/local/etc/apache/conf/, просто измените следующую строку в файле src/httpd.h:

#define HTTPD_ROOT "/etc/httpd"

Описание HTTPD_ROOT не включает закрывающего символа "слэш". Если Вы не изменили этот файл, но все-таки хотите переместить файлы конфигурации, можно указать место расположения httpd.conf при запуске программы httpd с использованием ключа -f в командной строке.

Последний шаг - это компиллирование Веб сервера. Просто введите команду "make" и исполняемый файл Веб сервера - httpd будет создан в каталоге /src. Дистрибутив содержит дополнительную документацию в файле README и src/INSTALL, это облегчит Вашу задачу.

Как настроить

У Веб сервера Apache есть масса чудесных параметров его конфигурации, количество этих параметров может напугать новичка, ранее не имевшего дела с настройкой подобных серверов. Но можно использовать простой рецепт для быстрой насторйки и запуска в эксплуатацию Вашего Веб сервера. Следующие значения позволят создать рабочий вариант Интранет сервера, который полностью удовлетворит требованиям большинства организаций. Разумеется, если Вы предъявляете особые требования к безопасности своей системы, ищите помощи в документации на Apache.

Каждый дистрибутив Linux сможет установить Apache с набором простейших настроек. Даже если Ваш Веб сервер прожил на свете всего лишь несколько секунд после установки, Вы можете проверить файлы конфигурации, чтобы узнать, какие его функции и возможности включены, а какие отключены по умолчанию при его установке.

Настройки сервера Apache, как правило, хранятся в четырех текстовых файлах. В Red Hat их можно найти в каталоге /etc/httpd/conf/, a Debian хранит их в каталоге /etc/apache/. Если Вы самостоятельно скомпиллировали сервер, как было описано выше, то эти файлы будут располагаться в каталоге /usr/local/etc/apache/conf/. Вот эти четыре файла:

access.conf

httpd.conf

srm.conf

mime.types

Если Вы не можете найти эти файлы, то поищите набор шаблонов этих файлов с расширениями .conf-dist в дистрибутиве Apache и просто скопируйте их в соответствующий каталог (например, /etc/httpd/conf/, если у Вас Red Hat Linux), изменив расширения файлов, а затем отредактируйте эти файлы, изменяя параметры, описанные ниже. Файлы конфигурации, поставляемые с дистрибутивом сервера Apache, содержат полезные подсказки и пояснения, не приведенные в этой статье для экономии места, а также массу дополнительных параметров, которые мы просто пропустим. Так что лучше заняться корректировкой существующих файлов и настройкой необходимых параметров, чем пытаться создавать набор своих собственных файлов настроек, которые заведомо будут неполными.

Среди этих четырех файлов есть один, который меньше всего требует каких-либо исправлений, это файл mime.types, который содержит таблицы, описывающие привязку MIME - заголовков к типам файлов. Например, в этой таблице устанавливается связь файлов с расширением .gz и MIME заголовком "application/x-zip".

Главным кандидатом на изменение настроек является файл с описанием конфигурации доступа. В файле access.conf попробуйте изменить следующие значения:

<Directory /home/httpd/html>

Options Indexes Includes ExecCGI FollowSymLinks

AllowOverrided None

order allow, deny

allow from all

</Directory>

В этом примере, взятом из модифицированного файла конфигурации Веб сервера от Red Hat, первая строка говорит, что основные HTML файлы для этого сервера находятся в каталоге /home/httpd/html. Параметры "Options" включают:

- Indexes: если пользователь описывает URL, который указывает на каталог, который не содержит индексного файла (такого, как index.html), сервер Apache просто выведет список файлов, хранящихся в этом каталоге. Если Вы не хотите, чтобы это происходило, удалите слово "Indexes" из строки "Options".

- Includes: это позволяет серверу включать файлы так, как указано в настройках.

- ExecCGI: если URL указывает на CGI скрипт, этот ключ разрешит выполнение этого скрипта. Если Вы не заинтересованы в использовании CGI скриптов, не включайте этот параметр.

- FollowSymLinks: предположим, что я создал символическую ссылку на мой CD-ROM-привод в этом каталоге. Этот ключ даст команду серверу Apache разрешить доступ к этому диску так, как будто это отдельный подкаталог этого каталога. Эта возможность пригодится, если Вы хотите разместить на своем сервере содержимое целого компакт-диска, не копируя его на жесткий диск, или дать возможность пользователям читать документацию HOWTO, которая обычно содержится в каталоге /usr/doc. Но помните, что создавать подобные символические ссылки нужно с осторожностью, иначе в один прекрасный день Вы обнаружите, что Ваш сайт содержит документы, которые Вы и не собирались публиковать.

Оставшиеся команды в нашем примере дословно переводятся так: "не игнорировать обычные правила доступа", "просматривать директивы для разрешения доступа перед директивами запрета доступа" и "разрешить доступ с любого хоста". Вместе все эти правила сводятся к следующему: "если эта информация у меня есть и кто-либо ее вежливо попросит, я должен отдать эту информацию".

Строки с описанием каталога CGI в минимальной конфигурации выглядят так:

<Directory /home/httpd/cgi-bin>

AllowOverride None

Options None

</Directory>

Параметры файла httpd.conf, которые описывают поведение программы - демона Apache:

HostnameLookups on

С этим параметром сервер будет использовать DNS для определения адресов пользовательских компьютеров в целях обеспечения доступа.

User nobody

Group nobody

Имя пользователя и пользовательской группы определяют набор их прав и привилегий для доступа к информационным ресурсам. Этот сервер будет действовать таким образом, как если бы все процессы порождались одним пользователем и группой (в нашем случае - nobody).

ServerAdminroot@localhost

Эта команда описывает имя пользователя и компьютер, принимающий почтовые сообщения, которые могут создаваться программой.

ServerRoot/stc/httpd

Указывает основной каталог для хранения файлов конфигурации и файлов - протоколов работы сервера.

ErrorLoglogs/error_log

TransferLoglogs/access_log

RefererLoglogs/referer_log

AgentLoglogs/agent_log

Эти параметры описывают названия и место расположения различных лог-файлов. Указанные каталоги находятся внутри каталога, описанного как ServerRoot. После того как сервер Apache проработал у Вас некоторое время, изучите эти файлы. В них Вы найдете информацию: кем, когда и какие файлы были востребованы с Вашего сервера. Вы найдете также информацию о компьютерах, с которых осуществлялся вызов Ваших Веб страниц, а также о типах браузеров, которые использовали Ваши посетители.

MinSpareServers5

MaxSpareServers10

StartServers5

MaxClients150

Эти параметры связаны с тем, что сервер Apache порождает свои дочерние процессы до того, как они будут реально востребованы, чтобы таким образом упредить внезапное возрастание входящего траффика. Они описывают минимальное и максимальное количество неиспользуемых порожденных процессов, которые должны существовать в любой момент времени. Использовав команду ps ax, Вы увидите, сколько дочерних процессов использует Ваш сервер.

Файл srm.conf также содержит различные настройки. Он работает с пространством имен сервера, а также управляет ответами сервера на внешние запросы. Особый интерес представляют следующие строки:

DocumentRoot/home/httpd/html

Alias/icons/home/httpd/html

ScriptAlias/cgi-bin/home/httpd/cgi-bin

UserDirpublic_html

DocumentRoot описывает корневой каталог, который содержит Веб страницы этого сервера. Alias разрешает доступ к отдельным каталогам с использованием псевдонимов, а не полного пути к этим каталогам, даже если они находятся вне корневого каталога DocumentRoot. ScriptAlias - то же самое, что и Alias, только содержит этот каталог не обычные файлы, а файлы CGI скриптов. UserDir описывает пользовательские каталоги, в которых содержатся Веб страницы пользователей, доступ к которым осуществляется по URL вида /~username/. Например, если домашний каталог пользователя обычно /home/username, то каталог с HTML файлами этого пользователя по умолчанию будет:

/home/username/public_html/

Заключение

Сочетание Linux и Apache - это быстрый и недорогой путь для создания надежного Интранет Веб сервера. Несмотря на огромное количество различных параметров, Apache может быть быстро сконфигурирован для удовлетворения потребностей небольших компаний. Фактически, большинство дистрибутивов Linux поставляются в настоящее время с предварительно настроенным и готовым к работе Веб сервером Apache. Если Ваши потребности со временем будут возрастать, Apache сможет Вам помочь перейти к более сложной конфигурации.

Ресурсы

http://www.apache.org - Веб сайт Apache с огромным количеством документации; http://www.apacheweek.com - он-лайновый журнал Apache Week; http://eunichs.org/ Linux/TkApache/ - средство настройки TkApache Майкла Холва; http://www.esi.us.es/ ~ridruejo/gui/home.html - проект, посвященный конфигурации Веб сервера Apache с использованием графического пользовательского интерфейса; http://www.ssc.com/ lg/issue24/apache.html - данные опроса Netcraft в январе 1998 г. показали, что более 50% всех серверов в сети Интернет используют программное обеспечение Apache; ftp://ftp.ssc. com/pub/lj/listings/issue55/2932.tgz - три примера файлов конфигурации, которые можно загрузить с этого сайта, используя анонимный FTP. by Рассел Павличек"Linux Journal" Issue 55 November 1998
печатается с разрешения"Linux Journal", перевод Игоря Греня



© Компьютерная газета

полезные ссылки
Оффшорные банковские счета