Наиболее распространенные веб серверы. Пять лучших открытых веб-серверов. Выделенный сервер баз данных

Согласно статистическим данным проекта W3techs, более 80% веб-приложений и сайтов работают на серверах с открытым исходным кодом. Не зря именно о «доминировании в сети» чаще всего говорят сторонники Open Source, когда заходит речь о доле Linux на рынке.

На какие проекты следует обратить внимание в первую очередь? Какие открытые серверы лучше всего подойдут для решения пользовательских задач?

Эксперт в области e-Government Робин Мульвижк на страницах сайта OpenSource.com предлагает пять наиболее популярных открытых веб-серверов.

Apache HTTP Server

В феврале 2015 года этот проект отметил своё двадцатилетие. Это самый популярный веб-сервер в мире - по данным W3techs, на нём работает 52% всех сайтов в мире.

Чаще всего платформой для Apache HTTP Server является Linux. Но приложение мультиплатформенное - сервер можно развернуть на OS X или Windows. Решение построено по модульному принципу, поэтому при необходимости его функциональность расширяется. Например, при помощи модуля mod_proxy на сервере создаётся шлюз, модуль mod_proxy_balancer сбалансирует нагрузку для всех поддерживаемых протоколов, а модуль mod_http2 отвечает за поддержку HTTP/2.

Проект сопровождается прекрасной документацией и комплексной поддержкой со стороны других пользователей. Распространяется решение на условиях Apache License v. 2.

NGINX

Разработка этого сервера началась в 2002 году российским программистом Игорем Сысоевым. Первый публичный выпуск приложения состоялся в 2004 году и по сути являлся ответом на проблему C10K - задачи по построению высокопроизводительного сервера, способного одновременно обслуживать 10 тысяч соединений.

Согласно данным W3techs, этот сервер занимает второе место по популярности в мире среди решений с открытым исходным кодом. На нём работает чуть больше 30% всех сайтов.

Чаще всего системные администраторы выбирают NGINX из-за высокой производительности и способности к масштабированию. Решение прекрасно подходит для обработки множества параллельных сеансов.

Распространяется приложение на условиях очень короткой BSD-подобной лицензии.

Apache Tomcat

Apache Tomcat - открытое приложение, разрабатываемое Apache Software Foundation и представляющее собой контейнер сервлетов, который функционирует в качестве веб-сервера, расширяя таким образом его функциональность. Написан на языке Java. Изначально права на решение принадлежали компании Sun Microsystems, которая в 1999 году безвозмездно передала их фонду.

Как правило, Apache Tomcat используется либо как обслуживающий локальные файлы самостоятельный веб-сервер, либо как сервер приложений на Apache HTTP Server. По данным W3techs, он применяется на 1% всех сайтов Интернета.

Распространяется приложение на условиях Apache License v. 2.

Node.js

Разработка Node.js началась в 2009 году Райаном Далем. В настоящее время проектом управляет Node.js Foundation при поддержке Linux Foundation. Согласно данным W3techs, рыночная доля решения составляет 0,2%.

Node.js представляет собой платформу для выполнения сетевых приложений и зачастую играет роль самостоятельного веб-сервера. Благодаря своим конструктивным особенностям он позволяет добиться высокой пропускной способности и масштабируемости веб-приложений, работающих в режиме реального времени, что весьма актуально для браузерных игр.

Распространяется приложение на условиях оригинальной лицензии.

Lighttpd

Первый выпуск этого приложения датирован мартом 2003 года. Как и NGINX, веб-сервер Lighttpd способен поддерживать 10 тыс. соединений одновременно, что стало возможно благодаря их асинхронной обработке. По данным W3techs, этот сервер обслуживает 0,1% всех сайтов.

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

Распространяется решение на условиях лицензии BSD.

Несколько месяцев назад, в одной из своих прошлых статей, я опубликовал интересные данные от компании comScore, которая ежемесячно подсчитывает . Если вы читали ту статью, то, наверное, помните, что Россия стала лидером в Европе по числу интернет-пользователей. Так вот, сегодня я хочу предоставить вам еще одни достаточно интересные данные, но уже от другой, не менее популярной компании – от компании Netcraft. Сегодня мы с вами узнаем, сколько существует сайтов в сети Интернет, и какие web-серверы являются самыми популярными в мире.

Если верить компании Netcraft, то по состоянию на январь 2012 года в сети Интернет насчитывалось аж 582,72 млн. сайтов – это 27,23 млн. или на 4,9% больше, чем было зафиксировано месяцем ранее, то есть в декабре 2010 года. Как видите, с каждым месяцем «всемирная паутина» лишь разрастается, благодаря чему информационное пространство нашей планеты становиться все больше и больше. И заметьте, что это еще не предел. Эксперты прогнозируют, что количество пользователей и количество сайтов в сети Интернет продолжит увеличиваться, причем этот рост будет существенным – по крайней мере, в ближайшие годы.

Также расчеты компании Netcraft показывают, что web-сервер Apache продолжает оставаться самым популярным в мире – в январе 2012 года его рыночная доля составляла аж 64,91%.

А так, вообще-то, тройка лидеров выглядит следующим образом:

  • Apache – 64,91% (в декабре 2010 года было 65,22%);
  • Microsoft – 14,46% (14,86%);
  • nginx – 9,63% (8,85%).

Получается, что на текущий момент лишь российский web-сервер nginx увеличивает свою рыночную долю, в то время как лидеры ее теряют, хоть и очень медленными темпами. При этом стоит отметить один важный момент – если при статистических расчетах брать во внимание лишь активные сайты сети Интернет, то по итогам января 2012 года web-сервер nginx незначительно, но все-таки опередил в рейтинге web-сервер Microsoft.

  • Apache – 57,93% (месяц назад 58,21%);
  • nginx – 12,18% (11,61%);
  • Microsoft – 12,14% (12,31%);
  • Google – 7,90% (8,13%).

В этом случае рыночная доля также растет лишь у web-сервера nginx, тогда как остальные потихоньку теряют свои позиции. А ведь еще год назад, в январе 2011 года, рыночная доля российского web-сервера находилась на отметке 8,23%, в результате чего он занимал только четвертую позицию рейтинга, уступая и Microsoft (16,76%) и даже Google (11,90%). Таким образом, мы видим серьезный рост популярности nginx, и как говорят его представители, этот рост носит необратимый характер – по крайней мере, к концу 2012 года они рассчитывают увеличить свою рыночную долю до 18%. Цель реальная, поэтому пожелаем им удачи.

А чтобы достичь поставленных целей, летом 2011 года была создана компания «Nginx Inc.», которая теперь будет осуществлять все работы над проектом «nginx». При этом осенью того же 2011 года данная компания получила очень приличные инвестиции (3,0 млн. долларов), поэтому не стоит удивляться, если web-сервер nginx по итогам 2012 года все же увеличит свою рыночную долю до ожидаемых 18%. Так что нам остается лишь ждать и следить за новостями.

Apache от ASF . Без преувеличения можно сказать, что это самый распространенный Web- сервер в мире. Сейчас имеются версии фактически для всех известных платформ и операционных систем, в том числе и для Windows NT. Поддержка Windows NT появилась лишь в последней версии, и это еще больше повысило популярность Apache в мире. Его несомненными достоинствами являются надежность, исключительная производительность и огромный набор функций и дополнительных модулей. Но все же «изюминкой» этого сервера является свободное бесплатное распространение. Это дает возможность, помимо экономии денег, быстро исправлять ошибки и вносить в код программы необходимые дополнения. Надо отдать должное тем, кто занимается созданием Web-сервера Apache, - эти люди безвозмездно и, главное, очень быстро справляются с замеченными ошибками. Кстати, отмечу, что таким человеком сможет стать любой, желающий внести свой вклад в развитие этого сервера. Версия 1.3.x считается одной из самых стабильных и быстрых среди всего семейства Apache. Основными свойствами Apache являются поддержка кросс-платформ, протокол HTTP/1.1, модульная структура, защита, запись log-файлов. Кроме стандартной поставки имеется большое количество модулей, которые расширяют возможности Apache. Свободное распространение и открытый код позволяют создавать наиболее защищенные модули. В этом с Apache трудно соревноваться любому коммерческому серверу. Но, несмотря на все эти достоинства, есть и серьезный пробел, который я бы все-таки не назвала недостатком: у Apache нет красивой программы установки и управления. Во время установки приходится иметь дело с командной строкой. Более того, при установке под UNIX иногда приходится даже вносить коррективы в include-файлы. Конечно, есть подробное описание того, что и как необходимо изменить, однако, на первый взгляд это кажется не очень удобным. При работе приходится иметь дело не с оконной программой, а с текстовыми конфигурационными файлами. Техническая поддержка проявляется не в виде красивых help-файлов или фирм, предоставляющих специалистов, а в основном через телеконференции и обмен мнениями системных администраторов. На самом деле фирмы, предоставляющие услуги технической поддержки, все же есть, но это стоит денег. Но такой нетипичный для серьезного продукта стиль не делает Apache менее популярным, и на рынке он является самым серьезным конкурентом для всех WWW-серверов.

iPlanet server (бывший Netscape Enterprise server) от Netscape и Sun. Не так давно произошло объединение Netscape и Sun в области создания Web- сервера, а именно: бывший Netscape Enterprise server теперь перешел в новое качество – iPlanet server. Это не просто смена имени. Теперь ко многим качествам предыдущего сервера добавилась тесная интеграция с Java- технологиями. Последней версией является 4.1. iPlanet Server, который поставляется на компакт-диске или может быть загружен по Сети. При этом он не является бесплатным. Есть версии как под Windows NT, так и под некоторые UNIX-системы. Привлекает простота установки, конфигурирования и управления. Базовая установка занимает не более 15 минут. Вся дальнейшая настройка производится с использованием Java-программы, запускаемой в браузере откуда угодно. Что касается Java, то, как и следовало ожидать, сервер поддерживает новейшие Java-технологии, такие как Java Servlets 2.1, Java Server Pages .92, JVM, JavaScript 1.4. На сегодняшний день это единственный сервер такого плана. В дополнение к этому iPlanet server включает в себя возможности по управлению доступом к базам данных. В его поставке содержатся драйверы для работы с Oracle, Informix, DB2, и Sybase. С точки зрения программирования для iPlanet server, сейчас наметилась тенденции к объединению с iPlanet Application Server. Это позволит существенно расширить возможности по созданию программ для Web-сервера iPlanet. Все перечисленные свойства делают Web-сервер iPlanet привлекательным для использования в разных областях. Также ведется работа над сервером FastTrack, который будет ограниченным по возможностям аналогом полного сервера, но при этом бесплатным (при полной аналогии с Netscape FastTrack). Что касается технической поддержки, то все описания, справочники и другие материалы относительно iPlanet server сделаны на высоком уровне (впрочем, как и любая документация, находящаяся на сервере Netscape).

Internet Information Server (IIS) от Microsoft. Сервер IIS является лучшим для Windows NT . Это и понятно, потому что вряд ли кто-нибудь, кроме разработчиков операционной системы, может сделать программу, полностью использующую возможности этой системы. Версия 4.0 поставлялась бесплатно вместе с Service Pack, а версия 5.0 поставляется исключительно как часть Windows 2000. Версия 5.0, по мнению специалистов, отличается более высокой надежностью, более тесной интеграцией с Windows и целым набором новых свойств. Установка и конфигурирование занимают не более 10 минут. Особенно приятно, что теперь ненужно устанавливать какие-либо Service Pack’ и не нужно перегружать систему после установки. При всем этом сам сервер занимает около 30 Мбайт на диске и вполне работает на машине Pentium 200 МГц с объемом памяти 128 Мбайт. Однако установить и запустить сервер можно только на Windows 2000 Server. Помимо удобной установки, удобно реализована и система управления сервером. Существует несколько полезных программ шаблонов (Wizards) для выполнения частых и рутинных операций. Вообще, справедливости ради нужно отметить следующее: в том, что касается удобства, мало кто сможет соревноваться с программами Microsoft. К тому же IIS поддерживает известные и включает в себя новые стандарты защиты. Так, есть поддержка известных методов SSL 3.0, Kerberos 5.0, и нового метода Fortezza (новый стандарт безопасности). Наиболее интересной и отличительной чертой IIS является поддержка WebDAV (Web-based Distributed Authoring and Versioning). Это недавно появившийся стандарт, который позволяет превращать внутренние сети в единое пространство, используя ресурсы соседних компьютеров как свои. Для пользователей IIS это означает, что они могут c большим удобством разделять свои рабочие файлы и иметь при этом возможность блокировать файлы. Вместе с тем существуют и некоторые проблемы, и несовместимость. Не совсем корректно происходит работа одновременно с Front Page Server, иногда при изменении конфигурации приходится перезапускать систему, встречаются ошибки при использовании системы удаленного администрирования. Но в целом версия 5.0 является значительным шагом вперед по сравнению с 4.0 в плане надежности и удобства.

Важным показателем, является производительность работы сервера. Под производительностью понимается скорость работы сервера в зависимости от количества подключенных клиентов и от интенсивности передачи запрашиваемых данных. Производительность зависит от многих факторов: типа и скорости процессора, объема оперативной памяти, операционной системы, присутствия других программ, настройки самого сервера. В случае с Apache есть и более экзотический момент. Обычно его берут в виде исходных текстов. Поэтому производительность откомпилированной программы зависит от типа и параметров компилятора и линкера. Определение производительности является весьма трудной задачей, поскольку не все зависит от Web-сервера. Чтобы сравнивать именно производительность Web-серверов, необходимо поставить их в одинаковые условия. На самом деле не совсем ясно, что значит поставить в равные условия, скажем, сервер IIS под Windows 2000 на Intel и сервер Apache под AIX 4.3 на RS6000. Это абсолютно разные по типу и структуре операционные системы и разные процессоры. Здесь наиболее тонким моментом, по моему мнению, является выделение того, что имеет отношение к Web- серверу, а что - ко всему остальному. Тем не менее подобные исследования проводятся. Результаты некоторых из них можно найти на том же сервере Webcompare. Кратко отметим, что по этим тестам производительность Apache несколько ниже по сравнению с двумя своими конкурентами, но, как мы уже говорили, не очень понятны методика проведения этих тестов и, главное, принцип обработки информации.

Кроме свойств, которые присущи непосредственно WWW-серверам, есть еще вопросы работы операционной системы и Web-сервера как единого целого. Это в первую очередь касается сервера IIS как лучшего для Windows 2000. И дело не в этом сервере, а в Windows, а также в том, что необходимость перезапускать всю систему возникает гораздо чаще, чем в других операционных системах. Это приводит к тому, что ваш Web-сервер может работать нестабильно. Иногда стабильность работы является более важным критерием, чем удобство управления, например в таких системах реального времени, как Интернет-радио.

Самые популярные веб-серверы в разных странах. Источник: W3Tech.com

Казалось бы, совсем недавно в 2012 году мы , что веб-сервер nginx обогнал Microsoft IIS и вышел на второе место в интернете среди активных сайтов (у nginx было 12,18%, у Microsoft - 12,14%). За прошедшие пять лет nginx сильно укрепил позиции. По статистике Netcraft за март 2017 года в той же категории его доля составляет 19,67%, а Microsoft IIS опустился до 8,95%. Лидер прежний - Apache с 45,82%.

Nginx был единственным веб-сервером, доля которого выросла во всех метриках Netcraft в марте 2017 года. Это был единственный веб-сервер, доля которого стабильно росла.



Статистика Netcraft по доле веб-серверов на активных сайтах, март 2017 года

Кроме Netcraft, есть и другая статистика по веб-серверам. Например, W3Tech.com вчера выдал очень красивые «круглые» цифры . По их оценке, nginx сейчас установлен на каждом третьем веб-сервере в мире.

Семь лет назад доля nginx составляла всего 3,9%, а сейчас уже 33,3%.


За тот же срок 2010-2017 гг доля Apache упала с 71,5% чуть ниже 50%, а доля Microsoft IIS упала с 20,6% до 11,3%.

По статистике переходов , чаще всего на nginx переходят с Apache. Обратный процесс тоже наблюдается.


Мировым лидером по внедрению nginx является Россия с показателем 76,8%. Это и понятно, ведь автор nginx - российский Игорь Сысоев. Он написал программу в 2004 году. Кроме России, абсолютное лидерство nginx имеет в Беларуси, Казахстане и Украине, в отдельных странах Азии, Африки и Южной Америки.

Почти во всём остальном мире лидирует Apache, за исключением Китая, Турции, Египта и нескольких арабских стран, где первое место сохраняет Microsoft IIS.

Почему доля nginx растёт, а Apache падает? Возможно, это связано с более простой установкой и настройкой, поддержкой более современных протоколов. Среди новых сайтов доля nginx 36,4%, а Apache - 47,7%.

76,8% сайтов с поддержкой HTTP/2 работают на nginx, и только 2,3% на Apache (модуль HTTP/2 для Apache до сих пор имеет статус «экспериментального»). Похожая ситуация среди сайтов с поддержкой IPv6 : 63,6% из них работает на nginx, втрое меньше - на Apache. Nginx является выбором № 1 среди сайтов, написанных на Ruby, Python и Scala, а также у тех, кто использует современные JavaScript-библиотеки вроде AngularJS, Vue,js и React. Создаётся впечатление, что всё самое современное работает на nginx.

Среди операционных систем чёткого тренда нет, но серверы на Red Hat/CentOS в подавляющем большинстве используют Apache, а системы на Gentoo предпочитают nginx.

Работа с Web-сервером Russian Apache. Русский Apache

Самый распространенный Web-сервер в мире - это Apache. По данным компании Netcraft (http://www.netcraft.com/ Survey/ ) общее число Web-узлов, работающих под его управлением, к концу 1998 г. достигло 2 млн. (55% общего числа узлов) и постоянно растет. Для сравнения: на долю серверов Microsoft приходится 25%, Netscape -7%. Будучи бесплатной открытой программой, предназначенной для бесплатных же Unix-систем (FreeBSD, Linux и др.), Apache по функциональным возможностям и надежности не уступает коммерческим серверам, а широкие возможности конфигурирования позволяют настроить его для работы практически с любой конкретной системой. Существуют локализации сервера для различных языков, в том числе и для русского.

Исторически сложилось так, что русские тексты в Internet могут быть представлены в разных кодировках, из которых наиболее распространены koi8-r (или просто koi8) и Windows-1251: с первой работает большинство серверов и рабочих станций под управлением Unix, вторая является стандартной для всех версий Windows. Поскольку кодировка Windows-1251, естественно, применяется на подавляющем большинстве клиентских машин, доля тех, кто путешествует по русской части WWW, используя koi8, не превышает сейчас 5%. Однако в этой кодировке хранятся документы на многих Unix-серверах, в ней чаще всего передаются почтовые сообщения и практически всегда - письма в телеконференции, с ней же работают многие русскоязычные каналы IRC (кстати, аббревиатура КОИ расшифровывается как "код обмена информацией"). Чтобы решить проблемы, возникающие при несовпадении кодировок текста на сервере и клиентской машине, и был создан русский модуль Apache-RUS для Web-сервера Apache.

В статье мы рассмотрим процесс установки и настройки как самого сервера, так и механизма перекодирования документов "на лету".

Установка

Свежую версию Apache-RUS можно получить по адресу ftp://apache.lexa.ru/pub/apache-rus/ ("старшая" часть номера версии, например 1.3.3, соответствует версии оригинального Apache, "младшая", например PL27.3, - так называемому patch level, т. е. версии русского модуля). Рекомендуется устанавливать те версии, которые зарекомендовали себя как "стабильные". Здесь настройка сервера описывается на примере Apache_1.3.3rusPL27.3.

Итак, первым делом мы переписываем на свою машину архив (менее 1,5 Мбайт) и распаковываем его:

# ftp ftp://apache.lexa.ru/pub/apache-rus/ apache_1.3.3rusPL27.3.tar.gz

# tar xvzf apache_1.3.3rusPL27.3.tar.gz

После этого входим в созданный при распаковке каталог apache_1.3.3rusPL27.3 и запускаем сценарий configure:

# cd apache_1.3.3rusPL27.3

При необходимости сценарию можно в явной форме указать аргументы (их список выдается по команде configure -help). Так, если требуется установить сервер в иной каталог, нежели стандартный, нужно выполнить "configure -prefix=

Когда configure отработает, следует, как обычно, дать команды make и make install (эти действия выполняются пользователем root).

Теперь сервер установлен в каталоге /usr/local/apache, но запускать его пока нельзя - сначала мы должны отредактировать файлы настройки httpd.conf, access.conf и srm.conf в каталоге /usr/local/apache/etc/ (начиная с версии 27.4 - /usr/local/apache/conf).

Настройка

Настройка конфигурационных файлов Web-сервера - самый ответственный шаг при его установке. Здесь мы рассмотрим только наиболее распространенные директивы и их параметры, поскольку полный перечень с описанием займет не один десяток страниц. Сервер перечитывает конфигурационные файлы при запуске, а также при получении сигнала -HUP (жесткий рестарт) или -uSR1 (мягкий рестарт). Если сервер находится в рабочем состоянии, то при изменении конфигурации его рекомендуется перезапустить командой

# kill -USR1 `cat /usr/local/apache/logs/httpd.pid`

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

Файл access.conf

В access.conf содержатся директивы, описывающие права доступа к каталогам и файлам Web-сервера. Прежде всего решите, в каком каталоге будут храниться документы. По умолчанию это /usr/local/apache/share/htdocs, однако многие администраторы предпочитают размещать документы начиная с каталога /www/<имя_сервера>/, поскольку при такой организации проще ориентироваться в структуре файлов. Пусть, например, мы создали каталоги:

/www/radio-msu.net/

/www/people.radio-msu.net/

Они будут корневыми для соответствующих виртуальных серверов.

Файл access.conf может содержать секции Directory, Location и Files, которые ограничены одноименными директивами. В параметрах этих директив могут использоваться символы "?" и "*" , а также регулярные выражения, предваряемые тильдой, например . В секции Directory помещаются инструкции, относящиеся к определенному каталогу на диске, в секции Location - относящиеся к виртуальному пути, в секции Files - относящиеся к файлу или группе файлов.

# директивы, относящиеся ко всем документам, хранящимся в

каталоге /www/rmt.ru и вложенных в него

# директивы, относящиеся ко всем документам, доступным по адресу http://<имя_сервера>/cgi-bin/ <путь_к_файлу>

# директивы, относящиеся к файлу form.html из каталога

Различие между секциями Directory и Location состоит в том, что первая относится к каталогам на диске, вторая - к виртуальному пути (URL), который браузер запрашивает у Web-сервера. И в той, и в другой могут присутствовать директивы order, allow и deny, которые позволяют ограничить доступ к каталогу или URL с различных машин.

Следующие две директивы относятся к секции .

Options

Возможные значения параметров:

    ExecCGI - разрешить выполнение CGI-сценариев в данном каталоге и его поддереве;

    FollowSymLinks - разрешить переходы по символическим ссылкам (создаваемым командой ln);

    Includes - разрешить SSI (Server Side Includes);

    Indexes - разрешить выдачу листинга каталога, если в нем нет файла index.html (или файла индекса, заданного директивой DirectoryIndex);

    MultiViews - разрешить поддержку многих языков; по умолчанию она отключена, и включать ее, как правило, не нужно; поддержка перекодирования "на лету" для русского языка устанавливается с помощью других директив, которые мы рассмотрим позже;

    All - установить сразу все перечисленные режимы кроме MultiViews.

При отсутствии специальных требований к безопасности вполне допустимо указать "Options All" в секции ; в противном случае нужно описать параметры каждого каталога отдельно.

AllowOverride

Большинство директив могут задаваться не только в конфигурационных файлах сервера, но и в файлах.htaccess в каталогах сервера. Директива AllowOverride определяет набор директив, допустимых в файлах.htaccess. Параметры могут быть указаны следующие:

FileInfo - разрешить директивы, отвечающие за типы документов;

Indexes - разрешить директивы, связанные с листингом каталогов;

Limit - разрешить команды allow и deny, которые ограничивают доступ к файлам в зависимости от адреса клиентского компьютера;

Options - разрешить описанную выше директиву Options.

Учтите, что при включении последнего режима пользователи получают возможность создавать собственные файлы.htaccess и разрешать в них выполнение CGI-сценариев. Поэтому если нужно контролировать CGI-сценарии пользователей, не следует распространять на пользовательские каталоги действие директивы AllowOverride Options.

Однако во многих случаях (в частности, когда права на изменение содержимого сервера есть только у администратора) файл access.conf может выглядеть так, как в.

Файл srm.conf

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

DocumentRoot <первый каталог сервера>

Путь к каталогу по умолчанию, индексный файл которого пользователь получит при обращении к серверу (http://<имя_сервера>/). Эту директиву следует задать и для каждого из виртуальных серверов (в секции файла httpd.conf).

UserDir <имя пользовательского каталога>

Каталог, в котором пользователи должны размещать свои файлы, чтобы они были доступны по адресу http://<имя_сервера>/~<имя_пользователя>/. Стандартно public_html. Иногда, чтобы облегчить жизнь пользователям, администраторы дают директиву "UserDir www".

DirectoryIndex <список файлов индекса>

Файл индекса - это тот файл, который будет передан клиенту при обращении к каталогу. Если указать несколько имен, сервер будет искать подходящий файл "слева направо". По умолчанию список содержит всего одно имя - index.html, но принято добавлять в него и другие распространенные имена индексных файлов. Например, директива может иметь вид: DirectoryIndex .index.html index.html index.htm index.cgi index.shtml home.html home.htm default htm default html

Чтобы включить на сервере поддержку CGI-сценариев, следует убрать знак комментария перед директивами ScriptAlias и AddHandler cgi-script .cgi. Первая задает каталог на диске, в котором будут храниться исполняемые программы, а вторая определяет, что все файлы с расширением.cgi должны обрабатываться как сценарии.

Директива ErrorDocument позволяет заменять стандартные сообщения сервера об ошибках на свои. Например, в случае самой распространенной ошибки - 404 (файл не найден) - считается хорошим тоном выдавать пользователю страницу с предложением продолжить свой путь по серверу или форму для поиска по узлу. Реализуется это достаточно просто: в настройках сервера мы убираем знак комментария со строки

ErrorDocument 404 /missing.html

B корневом каталоге каждого виртуального сервера создаем файл missing.html. Рекомендуется дать в нем ссылки на основные разделы сервера - и для удобства пользователей, и для того, чтобы предоставить необходимую информацию поисковым роботам, индексирующим серверы.

Файл httpd.conf

Конфигурационный файл httpd.conf является основным и содержит настройки, связанные с работой Web-сервера, виртуальных серверов, а также всех его программных модулей. Кроме того, именно в нем настраивается перекодирование русских букв при передаче от сервера к клиенту и обратно.

Директива Port, помещенная в самом начале файла, определяет номер порта для http-сервера; по умолчанию это 80. При необходимости можно приписать серверу другой порт или несколько портов, для чего служит директива Listen.

Директива HostnameLookups с параметром on или off включает или, соответственно, отключает преобразование численных IP-адресов клиентов, получивших документы с сервера, в доменные имена. Такое преобразование несколько замедляет работу сервера, но при числе посещений менее 10 000 в сутки это, как правило, практически не заметно.

Директивы User и Group задают пользователя, который будет администрировать сервер. С точки зрения безопасности нежелательно указывать здесь существующего пользователя, имеющего доступ к каким-либо другим ресурсам или файлам. Лучше создать отдельного пользователя и группу специально для http-сервера, например:

Директивы ServerRoot, ErrorLog, CustomLog определяют соответственно корневой каталог http-сервера, путь к журналу регистрации ошибок (error_log) и путь к общему журналу обращений к серверу (access_log).

Директива CacheNegotiatedDocs разрешает кэширование документов, полученных с сервера. По умолчанию этот режим отключен, но, поскольку пропускная способность отечественных Internet-каналов еще долго будет оставлять желать лучшего, хорошо бы его включить: тогда пользователю не придется ждать загрузки картинок при каждом обращении к вашей странице.

Настройка виртуальных серверов в файле httpd.conf

В большинстве случаев один http-сервер способен обрабатывать запросы, поступающие на различные, так называемые виртуальные, Web-серверы. Виртуальные серверы могут иметь как один и тот же IP-адрес, но разные доменные имена, так и разные IP-адреса. С точки зрения пользователя второй вариант чуть более предпочтителен, поскольку запрос к серверу, отличающемуся от основного только доменным именем, должен содержать его имя, а некоторые старые браузеры, не поддерживающие протокол HTTP/1.1 (например, Microsoft Internet Explorer 2.0), не включают в запрос эту информацию. Однако такие браузеры выходят из употребления (сейчас их уже менее 0,5% общего числа); с другой стороны, выделение собственного IP-адреса каждому виртуальному серверу может быть неоправданной растратой адресного пространства компании.

Для описания адресов и доменных имен виртуальных серверов служат директивы ServerName, ServerAlias, NameVirtualHost и VirtualHost. Они необходимы, только если вам нужно установить более одного виртуального сервера.

http://www.apache.org/ - официальный сервер разработчиков Apache

http://apache.lexa.ru/ - сервер группы разработчиков русского модуля Apache