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

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

Как я уже сказал, процесс создания сайта — это не только написание HTML страницы, как многие думают:), это целый комплекс мероприятий, который требует достаточно большого объема знаний в web направлении, например, можете прочитать статью «Как стать вебмастером и что для этого нужно знать? » и Вы, наверное, поймете, что знание HTML ничего еще не дает.

Популярные web сервера

Ну, хватит вступления, перейдем к теме нашей статьи. И начнем с того, что мы просто перечислим самые популярные WEB-сервера, а сегодня ими являются:

  • Apache – примерно 55-60% всех сайтов в Интернете (это самый популярный webсервер в мире! );
  • Microsoft-IIS – примерно 12-14 % всех сайтов в Интернете;
  • Nginx – примерно 10-12% всех сайтов в Интернете.

Остальную долю занимают, как Вы понимаете, менее популярные web сервера, такие как:

  • Lighttpd ;
  • Gws ;
  • Resin ;
  • и другие.

Сегодня мы проведем обзор 3 самых популярных web серверов и начнем, конечно же, с самого популярного это — Apache!

Обзор веб сервера Apache

Apache – это бесплатный, кроссплатформенный web сервер, он поддерживает следующие операционные системы: Microsoft Windows, Linux, BSD, Mac OS, Novell NetWare, BeOS.

Данный веб сервер отличается своей гибкостью в конфигурирование и расширяемостью, т.е. к нему можно подключать внешние модули. На данном web сервере можно разрабатывать сайты на таких языках программирования как:

  • Python;
  • Ruby;
  • Perl;

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

#подключение для apache версии 2.2, подключаем модуль LoadModule php5_module "C:\Program Files\PHP\php5apache2_2.dll" #добавляем тип файлов для обработчика AddType application/x-httpd-php .php #указываем директорию с php.ini PHPIniDir "C:\Program Files\PHP\"

Это мы подключили php к apache версии 2.2, да, кстати, если речь зашла об версионности, давайте поговорим и об этом.

На сегодняшний день последней версией Apache является 2.4, но как не странно эта версия пока не является самой популярной. В Интернете широкое распространение получили две версии Apache — это версия 1.3 и версия 2.2 . Пусть версия 1.3 уже морально устарела, но ей все равно не перестают пользоваться. Особо кардинальных отличий между этими версиями нет, хотя в версии 2.2 изменилось расположение некоторых файлов, файл httpd.conf разбился на несколько частей и немного изменилась структура папок, что может поначалу затруднить переход с версии 1.3 на 2.2.

Самое главное, что мне нравится в Apache — это достаточно много нормальной документации что, конечно же, позволяет упростить освоение данного сервера. Например, у Apache есть официальный сайт — www.apache.org где, кстати, Вы можете скачать любую версию Apache для любой операционной системы. У новичков всегда возникают вопросы, где можно скачать тот или иной дистрибутив (советую качать только с официального сайта), например, вот на этой странице вот она Вы можете скачать дистрибутив для Windows (например, версию 2.2.22 в виде msi пакета, соответственно выбирайте нужное расширение ).

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

Пока про Apache все, переходим к следующему по популярности Web серверу.

Обзор web сервера IIS

IIS (Internet Information Services ) – это не отдельный web сервер, а целый набор web служб, необходимых для функционирования полноценного web сервера. Данный WEB Server реализован на платформе Windows (и соответственно принадлежит компании Microsoft ), я даже больше скажу, он полностью интегрирован с этой операционный системой (как впрочем, и все другие сервера, которые входят в состав Windows ). На данном сервере можно разрабатывать сайты с помощью технологий ASP (но она уже устарела ) и ASP.NET, так как эта технологии от компании Microsoft, но любителей других технологий (языков программирования ) компания Microsoft не забыла и сделала возможность прикручивать эти языки к этому WEB серверу, например: PHP, PERL и другие. Самыми популярными версиями являются IIS-6, IIS-7 , IIS-7.5 и самая последняя версия (на сегодняшний день ) IIS-8 (в Windows 8 и Windows Server 2012 ).

Основными компоненты web сервера IIS являются:

  • сама web служба;
  • служба FTP, может, кстати, функционировать как самостоятельный сервер, если Вы вдруг хотите настроить ftp, но при этом не использовать web сервер, ничего страшного в этом нет, устанавливайте и пользуйтесь на здоровье;
  • SMTP сервер, также можете использовать его как отдельный почтовый сервер у себя в организации.

Конечно в новых версия Windows, таких как Windows 7, Windows Server 2008 существует более подробная разбивка на отдельные компоненты, так сказать для удобства, т.е. если пользуетесь, ставьте, если нет, то не ставьте. Выше я представил лишь общую (малую ) часть всех компонентов.

Все кто работал с Windows серверами знают, что практически все настройки во всех ролях сервера, делаются через графический интерфейс и сервер IIS не исключение, поэтому если Вам не нравится конфигурировать файлы или просто работать в командной строке, то этот сервер отлично подойдет Вам. Для кого-то это будет плюсам по сравнению с тем же самым апачем.

Многие web мастера не хотят использовать IIS только потому, что думают, что для этого нужно устанавливать Windows Server, например, 2003 или 2008, с одной стороны они правы, т.е. если Вы хотите размещать свои сайты на собственном сервере (как например хостинговые компании в Интернете ), то тогда конечно лучше всего установить серверную операционную систему. Но если Вы хотите просто разрабатывать сайты, а потом перенести на хостинг в Интернет, то IIS можно устанавливать и на обычные клиентские операционные системы такие как: Windows XP Pro или Windows 7 Pro и выше. Делается это штатными средствами операционной системы:

Панель управления -> Установка/удаление программ (Windows XP) или программы и компоненты (Windows 7) -> Установка компонентов (Windows XP) или «Включение/отключение компонентов» (Windows 7) -> выбираем Internet Information Services (IIS) для Windows XP и службы IIS для Windows 7.

В Windows XP Pro:

В Windows 7:

Если нужно, можете нажать состав (Windows XP) или просто нажать плюсик (Windows 7) чтобы подробней посмотреть или выбрать необходимые компоненты, которые будут устанавливаться. Потом может потребоваться вставить установочный диск с операционной системой, для того чтобы программа установки взяла необходимые компоненты, и все, установка идет как установка обычного приложения, далее можете открывать:

Панель управление->администрирование-> Internet Information Services (Windows XP) или Диспетчер служб IIS (Windows 7).

Для проверки, что сервер работает и включен, откройте любой браузер и наберите, например, 127.0.0.1 должна открыться страница по умолчанию.

Если у Вас Windows XP, то установится IIS 5.1, который менее функционален по сравнению с другими версиями, например, с IIS 6 и 7. А если у Вас Windows 7, то установится IIS версии 7, который отлично подходит для нормального WEB сервера. В будущем на Windows 8 Вы будете ставить IIS версии 8.

Если Вы соберетесь ставить IIS на нормальную серверную операционную систему, то на Windows Server 2003 у Вас установится IIS 6, а на Windows Server 2008 IIS 7, на Windows Server 2008 R2 IIS 7.5, на Windows Server 2012 IIS версии 8. Рассматривать подробную инсталляцию данного сервера сейчас не будем, так как это выходит за рамки данной статьи, но в скором времени я планирую выпустить несколько статей по установке, настройке, администрированию WEB сервера IIS 7 на платформе Windows Server 2008, где Вы уже сможете подробно посмотреть все тонкости этого сервера.

Существуют несколько отличий серверов IIS 6 и IIS 7 (и выше) если быть точнее, то преимуществ 7 версии (и выше) над 6:

  • у 7 версии, на мой взгляд, более удобный интерфейс;
  • если Вы хотите разрабатывать сайты на PHP, то в 7 (и выше) версии более удобная интеграция и управление php расширением;
  • IIS 6 изначально не был ориентирован для хостингов, а IIS 7 (и выше) уже ориентирован, например: способность владельцам сайтов управлять и конфигурировать свои сайты (имеется в виду web сервер ) без обращения в техподдержку и без использования дополнительных скриптов у хостера, так как на версии IIS 6 хостеры использовали дополнительные скрипты, чтобы вручную не настраивать, выполнять просьбы владельцев сайтов. IIS6 был ориентирован только на корпоративные web сайты, но его начали использовать и хостеры, т.е. он приобрел популярность. IIS 7 отличный вариант для тех, кто любит Windows и Windows приложения и он уже ничем не уступает самому популярному web серверу в Интернете apache.

На сегодняшний день в Интернете из серверов IIS самым популярным пока остается 6 версия, но 7 версия уже почти догнала и все web мастера и хостеры уже активно переходят на 7 или выше версию IIS.

Обзор веб сервера Nginx

Nginx – веб сервер и почтовый прокси-сервер, разработанный российским программистом, который его активно продвигает, сейчас даже появилась компания Nginx, Inc.

Nginx работает на unix-подобных операционных системах, таких как: FreeBSD, OpenBSD, Linux, Solaris, Mac OS X, AIX, HP-UX, но также есть и версии под Windows, хотя как Вы уже поняли, разрабатывался этот web сервер именно под unix. Последней версией на данный момент является версия 1.2.4.

Главные особенности Nginx это: простота, быстрота, надежность . В общем, также как и вышеперечисленные web сервера — это отличный web сервер.

На сегодня все, в следующих статьях будем рассматривать уже подробно установку, настройку, обслуживание web серверов (на примере Apache 2.2.22 и IIS 7).

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-сервер может работать нестабильно. Иногда стабильность работы является более важным критерием, чем удобство управления, например в таких системах реального времени, как Интернет-радио.

Привет, эта статья рассматривает 5 наиболее популярных вариантов настройки сервера для веб-приложения. Какие варианты бывают и какой из них выбрать?

Существует множество факторов, которые необходимо учитывать при выборе серверного окружения (environment), такие как производительность, масштабируемость, доступность, надежность, стоимость и простота управления.

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

1. Все на одном сервере

Окружение находится на одном сервере. Для типичного веб-приложения она будет включать в себя веб-сервер, сервер приложений и сервер баз данных. Частным случаем реализации этого набора является , название которого представляет собой сокращение от Linux, Apache, MySQL и PHP, на одном сервере.

Пример использования: Хорошо подходит для быстрого развертывания приложения, так как это простейшая конфигурация из всех, однако она дает мало возможностей в плане масштабируемости и изоляции компонентов.

Плюсы:

  • Простота

Минусы:

  • Приложение и база данных используют одни и те же ресурсы сервера (CPU, память, I/O и т.д.), что, помимо потенциально низкой производительности, затрудняет определение источника (приложение или база данных) этой самой низкой производительности.
  • Затруднительно осуществлять горизонтальное масштабирование.

2. Выделенный сервер баз данных

Система управления базами данных (СУБД) может быть отделена от остального окружения, чтобы исключить конкуренцию за ресурсы сервера между приложением и базой данных и усилить безопасность, убрав базу данных из DMZ, общедоступного интернета.

Пример использования: Хорошо подходит для быстрого развертывания приложения, но при этом устраняет проблему конкуренции приложения и базы данных за одни системные ресурсы.

Плюсы:

  • Приложение и база данных не конкурируют за одни и те же ресурсы сервера (CPU, память, I/O и т.д.).
  • Вы можете вертикально масштабировать каждый компонент (приложение и базу данных) независимо друг от друга, добавляя дополнительные ресурсы к нужному серверу.
  • При определенных настройках это может повысить безопасность, убрав базу данных из DMZ.

Минусы:

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

3. Балансировщик нагрузки (обратный прокси)

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

Примеры программного обеспечения, поддерживающего обратный прокси: HAProxy, и Varnish.

Пример использования: Полезен для окружения, которое требует масштабирования путем добавления дополнительных серверов, так же известное как горизонтальное масштабирование.

Плюсы:

  • Делает возможным горизонтальное масштабирование, то есть ресурсы окружения могут быть увеличены путем добавления в него новых серверов.
  • Может защитить от DDOS-атак путем ограничения клиентских соединения до приемлемого количества и частоты.

Минусы:

  • Балансировщик нагрузки может стать узким местом в производительности, если он испытывает нехватку ресурсов или плохо настроен.
  • Может создать дополнительные сложности, требующие дополнительных усилий от администратора, например, работа с приложениями, которые требуют так называемых «липких сессий» (sticky session).

4. HTTP Accelerator (кэширующий обратный прокси)

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

Примеры программного обеспечения, поддерживающего HTTP acceleration: Varnish, Squid, Nginx.

Пример использования: Полезен для динамических веб-приложений с тяжелым контентом или с большим количеством файлов, к которым возможен одновременный доступ.

Плюсы:

  • Повышает производительность сайта путем снижения нагрузки на процессор веб-сервера за счет кэширования и сжатия, тем самым увеличивая количество обслуживаемый пользователей.
  • Может быть использован как балансировщик нагрузки обратного прокси.
  • Некоторое программное обеспечение для кэширования может защищать от DDOS атак.

Минусы:

  • Требуется настройка для достижения наилучшей производительности.
  • Если сам характер запросов пользователей не предполагает возможности эффективного кэширования, это может снизить производительность сервера.

5. Репликация базы данных по схеме ведущий-ведомый (Master-Slave)

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

Пример использования: Дает хорошее увеличение производительности приложения в части чтения из базы данных.

Вот пример репликации базы данных по схеме ведущий-ведомый с одним ведомым узлом:

Плюсы:

  • Улучшает производительность чтения из базы данных путем распределения запросов на чтение между ведомыми узлами.
  • Может улучшить производительность записи путем использования ведущего узла исключительно для записи (таким образом он не тратит время на обслуживание запросов на чтение)

Минусы:

  • Приложение, работающее с базой данных, должно иметь механизм определения узлов, на которые необходимо отправлять запросы на чтение и запись.
  • Обновления ведомых узлов асинхронны, поэтому есть вероятность получить не самые свежие данные при запросе.
  • Если ведущий узел перестает работать, нельзя делать какие-либо обновления базы, пока проблема не будет устранена.
  • Не имеет встроенных резервных средств на случай выхода из строя главного узла.

Пример: комбинирование концепций

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

Вот примерная диаграмма того, как может выглядеть серверное окружение:

Давайте предположим, что балансировщик нагрузки настроен на распознавание статических запросов (таких как изображения, CSS, JavaScript и т.д.) и отправляет эти запросы к серверам кэширования, а все другие запросы — к серверам приложений.

Вот что будет происходить, когда пользователь отправит запрос на динамический контент:

  1. Пользователь запрашивает динамический контент с http://example.com/ (балансировщик нагрузки).
  2. Балансировщик нагрузки посылает запрос на сервер приложения (app-backend).

Если пользователь запрашивает статический контент:

  1. Балансировщик нагрузки проверяет кэш (cache-backend) на предмет того, закэширован ли запрашиваемый контент.
  2. Если закэширован , то запрашиваемый контент возвращается балансирощику нагрузки, переходим в шагу 7. Если не закэширован , то сервер кэширование перенаправит запрос на сервер приложения через балансировщик нагрузки.
  3. Балансировщик нагрузки перенаправит запрос на сервер приложения.
  4. Сервер приложения (app-backend) читает из базы и возвращает запрашиваемый контент обратно балансировщику нагрузки.
  5. Балансировщик нагрузки перенаправляет ответ к серверу кэширования (cache-backend).
  6. Сервер кэширования кэширует полученный контент и возвращает его балансировщику нагрузки.
  7. Балансировщик нагрузки возвращает запрашиваемый контент пользователю.

Данное окружение имеет две возможные точки отказа (балансировщик нагрузки и ведущий сервер базы данных), но обеспечивает другие преимущества в области надежности и производительности, описанные ранее в каждом из пунктов.

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

Со временем любой веб-разработчик (блогер, веб-дизайнер или веб-программист ) будет нуждаться в специальной тестовой площадке, где можно без особых проблем заниматься разработкой сайта или тестированием другого веб проекта. Некоторые новички используют ресурсы своего платного хостинга и размещают туда минимум два сайта. Один рабочий (основной ), а другой (дополнительный ) для тестирования. Тестовый сайт подвергается различным испытаниям (установка и проверка многих плагинов, тем, скриптов и так далее ).

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

Почему нельзя?

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

Обычный файл можно открыть с помощью Notepade++ или даже с блокнота. Там внутри что-то написать, сохранить и потом без особых проблем открыть данный файл на своем браузере и посмотреть, как бы этот файл выглядел на хостинге в Интернете. То есть мы уже видим рабочую HTML страницу. В ней мы можем создавать определенный дизайн, контент и наблюдать за проектом без подключения к Интернету. Все, по сути, у нас уже есть. Если мы захотим запустить PHP файл с помощью браузера, то у нас ничего не получится, так как PHP скрипты в операционной системе Windows без дополнительного программного обеспечения работать не будут.

Все это не доступно на обычном компьютере и тем самым отпадает возможность работы со своими веб проектами. Поэтому некоторые новички начинают тратить деньги на дополнительные ресурсы своего платного хостинга. Но как быть в таком случае? Ответ прост — существуют специальные программы, с помощью которых можно установить свой выделенный сервер прямо у себя на компьютере.

Что такое сервер?

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

Для этого нам понадобятся специальные программы. Но какие лучше подойдут и какие трудности они могут вызывать при дальнейшей работе? Для ознакомления, ниже я привожу самые лучшие веб сервера по популярности во всем мире. Однако это не значит, что их нужно сразу устанавливать. Я потом объясню почему!

Список лучших веб серверов

В настоящее время на рынке присутствуют несколько решений от самых разных производителей:

  • (сайт — apache.org ) — это самый распространенный и популярный бесплатный сервер в сети. Он является более надежным и гибким. Сервер не требователен к ресурсам процессора и способен обслуживать множество сайтов. Приложение доступно для широкого спектра операционных систем, включая Unix, Linux, Solaris, Mac OS X, Microsoft Windows и другие. На данный момент использование Apache составляет 71 %. Однако, это сложная программа, с которой не каждый новичок сможет справится.

  • (сайт — www.iis.net ) — еще один надежный сервер от компании Microsoft. Он жестко укрепился на втором месте с 14 % использования в сети. После установки программы, будут поддерживаться только два языка программирования (VBScript и JScript ). Однако, можно открыть дополнительные возможности, установив для этого нужные расширения. С установкой таких модулей, функциональность данного сервера значительно повышается.

  • NGINX (сайт — nginx.org/ru/ ) — это наиболее популярный веб-сервер в российском Интернете. По сравнению с двумя первыми, он является наиболее простым и не обладает лишними функциями. Также его хвалят за надежность и высокую скорость работы. Разработчиком данного продукта является наш соотечественник — Игорь Сысоев. В 2004 году он выпустил первую версию nginx. Сейчас этот программный продукт замыкает тройку самых популярных веб серверов в мире. Его использование составляет около 6,5 %.

  • (сайт — litespeedtech.com ) — этот веб сервер не обладает широкими возможностями, но зато у него очень большая скорость работы. По быстродействию он сильнее популярного Apache в 9 раз. Немало внимания уделено и безопасности (своя защита от перегрузки системы, строгая проверка http-запросов, анти-ddos и многое другое ). LiteSpeed доступен для Solaris, Linux, FreeBSD и Mac OS X. Доля использования этой программы составляет 1,5 %.

Конечно же, есть много и других подобных программ, но доля их использования и доверия среди пользователей не так высока как у этих. К сожалению, одной такой программой вам не обойтись. Мало того, что их целесообразно использовать для работы с крупными проектами, так еще может возникнуть сложность в установке и настройке. К тому же помимо таких серверов требуется еще отдельная установка и настройка некоторых программ (например, для работы с базой данных ). Все это вызывает существенные трудности у многих пользователей. Как быть в таком случае?

Особенности локального сервера

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

То есть локальный сервер — это не одна программа (не один конкретный веб сервер ), а специальный сборник, куда входят облегченные варианты сложных серверных программ. Обычно в сборку входят: сам сервер (в основном Apache, но могут быть и другие ), компилятор PHP (с его помощью браузер может прочитать коды и собрать страницу ), компоненты для работы с базами данных, различные установщики и многие другие программы. Все это значительно упрощает дело, нежели если бы мы устанавливали и настраивали каждую программу в отдельности.

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

Обзор популярных локальных серверов

Вот некоторые сборки, которые могут пригодиться вам:

  • (сайт — denwer.ru ) — это бесплатный отечественный сервер, который предназначен для работы с сайтами, веб-приложениями или Интернет страницами. Его разработчиками являются Дмитрий Котеров и Антон Сущев. Данный продукт содержит необходимые дистрибутивы для упрощенной работы. Например, сюда входит веб-сервер Apache с различной поддержкой, панель phpMyAdmin и MySQL для работы с базами данных и другие программы. Также можно работать со съемной флешки. К сожалению Denwer поддерживает только операционную систему Windows.

  • XAMPP (сайт — www.apachefriends.org/en/xampp.html ) — специальная сборка сервера от друзей Apache. Необходимые дистрибутивы позволяют запустить на нем полноценный веб сервер. Данная программа распространяется бесплатно и поддерживает работу в системе Windows, Solaris, Mac OS X и Linux. Также есть следующие преимущества: сервер популярен своим очень простым пользовательским интерфейсом, что делает его любимым для многих начинающих; наблюдается многократные появления обновленных версий; процесс обновления проходит очень просто и удобно для пользователя; присутствуют дополнительные модули. Скачать нужную версию вы также можете с другого официального сайта — sourceforge.net/projects/xampp/files .

  • (сайт — www.appservnetwork.com ) — отличный сервер от тайского производителя, концепцией которого является легкая установка и настройка всех дистрибутивов за 1 минуту. Первый релиз сборки состоялся в 2001 году и с тех пор количество пользователей все время растет. AppServ очень прост в установке, он работает стабильно и не хуже официальных и отдельных релизов, а его надежная производительность дает возможность создать полноценный веб сервер на вашем компьютере.
  • (сайт — vertrigo.sourceforge.net ) — еще один неплохой и простенький в установке локальный сервер. Сборка очень гибкая, имеет хорошую производительность и занимает мало места на диске. К сожалению, пока работает только на ОС Windows.
  • Zend Server Community Edition (сайт — www.zend.com ) — бесплатный сервер от компании Zend, предназначен для работы с веб-приложениями. Содержит все необходимые компоненты для быстрого развертывания локального сервера на своем компьютере.

  • (сайт — open-server.ru ) — это отечественный портативный локальный сервер, который обладает высоким функционалом по разработке и созданию сайтов и других веб проектов. Имеет мультиязычный интерфейс (в том числе и русский ) и предназначен для работы в ОС Windows. Поддерживается работа со съемного носителя. Данный сервер очень хорош и служит неплохой альтернативой Денверу.

  • (сайт — wampserver.com ) — еще одна неплохая сборка с русским интерфейсом (есть также и другие языки ). Имеется простое и понятное меню, а удобная установка и настройка сборки не вызывает особых трудностей. Настройку можно производить не затрагивая файлы конфигураций, что очень полезно начинающим веб-мастерам. Сервер распространяется бесплатно и работает только на платформе Windows. К сожалению, портативной версии пока нет.
  • (сайт — easyphp.org ) — очень простенькая сборка с поддержкой русского языка. Сборка ни чем не примечательна, не имеет огромного функционала и в основном предназначена для тестирования небольших проектов. Есть поддержка работы с портативных носителей. Данный сервер послужит неплохой заменой Денверу.

Самые популярные веб-серверы в разных странах. Источник: 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.