Web сервер


Содержание

Обзор популярных Web серверов

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

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

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

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

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

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

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

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

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

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

А самое главное, что подключить эти языки довольно просто, всего лишь нужно прописать в конфигурационном файле httpd.conf подключение нужных модулей, например, 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).

Веб-сервер и сервер приложений 2020

Хотя термины Web-сервер и сервер приложений часто используются взаимозаменяемо, чтобы относиться к одной и той же вещи, то есть для обеспечения надлежащего функционирования веб-сайта, но это не одно и то же. Скорее, они работают вместе, чтобы доставлять контент с веб-сайтов конечным пользователям. Веб-сервер может ссылаться на программу, которая принимает и выполняет входящие запросы от клиентов для веб-ресурсов по всему миру. Он обслуживает эти запросы вместе с необязательным содержимым, которое обычно представляет собой HTML-страницы, файлы изображений, видеофайлы и т. Д. Сервер приложений обслуживает динамический контент для конечных пользователей, используя разные протоколы, включая HTTP. В этой статье объясняется разница между ними.

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

Веб-сервер — это не что иное, как программная программа, предназначенная для обработки веб-запросов. Он принимает входящие запросы в виде статического контента, который в основном является компонентами веб-сайта, включая HTML-страницы, графические и видеофайлы и т. Д. Затем он отвечает на запросы по протоколу HTTP вместе с дополнительным содержимым данных. Основная задача веб-сервера — предоставлять контент в World Wide Web, чтобы сделать их доступными для конечных пользователей. Он может относиться к системе, состоящей из оборудования или программного обеспечения, или к тому, где хранятся веб-содержимое. Говоря простыми словами, веб-сервер — это компьютер, который доставляет веб-страницы по мере их запроса. Apache — самый популярный и широко используемый веб-сервер с открытым исходным кодом, разработанный и поддерживаемый Apache Software Foundation.

Что такое сервер приложений?

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

Разница между веб-сервером и сервером приложений

Основы веб-сервера и сервера приложений

Веб-сервер относится к оборудованию или программному обеспечению или к обоим, которые доставляют контент или услуги конечным пользователям через World Wide Web. Это больше похоже на программу, которая отвечает на входящие сетевые запросы на веб-ресурсы по протоколу HTTP. Он также известен как интернет-сервер. С другой стороны, сервер приложений — это программная среда на основе компонентов, которая облегчает разработку и запуск веб-приложений. По сути, это серверная программа среднего уровня, предназначенная для обеспечения бизнес-логики для прикладных программ.

содержание

Веб-сервер ограничен только HTTP-контентом, то есть он использует протокол HTT для хранения, обработки и доставки контента клиентам. Это мощный компьютер, который делает сайты доступными через Интернет, а связь между клиентом и сервером выполняется с использованием HTTP. Сервер приложений не ограничивается отправкой статического содержимого HTML; Фактически, он передает бизнес-логику клиентским приложениям с использованием нескольких протоколов.

Функция веб-сервера и сервера приложений

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

Многопоточность

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

Объем веб-сервера и сервера приложений

Веб-сервер основан на программах, связанных с интернетом и интрасети, для обслуживания электронной почты, запросов на загрузку файлов FTP, а также для создания и публикации веб-страниц для клиентов с использованием протокола HTTP. Он может использоваться отдельно или как компонент на сервере приложений. С другой стороны, серверы приложений могут делать все, на что способны серверы приложений и многое другое. Они более способны создавать динамический контент для обслуживания как веб-приложений, так и корпоративных приложений.

Веб-сервер и сервер приложений: сравнительная таблица

Резюме веб-сервера Vs. Сервер приложений


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

Илон Маск рекомендует:  Комментарии в Less

Что такое веб-сервер

На этой странице

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

Вы узнаете, что такое веб-сервер и получите общее представление о том, как он работает.

Введение

Понятие « веб-сервер » может относиться как к аппаратной начинке, так и к программному обеспечению. Или даже к обеим частям, работающим совместно.

  1. С точки зрения «железа», « веб-сервер » — это компьютер, который хранит файлы сайта (HTML-документы, CSS-стили, JavaScript-файлы, картинки и другие) и доставляет их на устройство конечного пользователя (веб-браузер и т.д.). Он подключен к сети Интернет и может быть доступен через доменное имя, подобное mozilla.org .
  2. С точки зрения ПО, веб-сервер включает в себя несколько компонентов, которые контролируют доступ веб-пользователей к размещенным на сервере файлам, как минимум — это HTTP-сервер . HTTP-сервер — это часть ПО, которая понимает URL’ы (веб-адреса) и HTTP (протокол, который ваш браузер использует для просмотра веб-страниц).

На самом базовом уровне, когда браузеру нужен файл, размещенный на веб-сервере, браузер запрашивает его через HTTP-протокол. Когда запрос достигает нужного веб-сервера («железо»), сервер HTTP (ПО) принимает запрос, находит запрашиваемый документ (если нет, то сообщает об ошибке 404) и отправляет обратно, также через HTTP.

Чтобы опубликовать веб-сайт, необходим либо статический, либо динамический веб-сервер.

Статический веб-сервер, или стек, состоит из компьютера («железо») с сервером HTTP (ПО). Мы называем это « статикой » , потому что сервер посылает размещенные файлы в браузер « как есть » .

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

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

Активное изучение

Погружаемся глубже

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

Хостинг файлов

Прежде всего, веб-сервер должен содержать файлы веб-сайта, а именно все HTML-документы и связанные с ними ресурсы, включая изображения, CSS-стили, JavaScript-файлы, шрифты и видео.

Технически, вы можете разместить все эти файлы на своем компьютере, но гораздо удобнее хранить их на выделенном веб-сервере, который:

  • всегда запущен и работает
  • всегда подключен к Интернету
  • имеет неизменный IP адрес (не все провайдеры предоставляют статический IP-адрес для домашнего подключения)
  • обслуживается третьей, сторонней компанией

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

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

Связь по HTTP

Во-вторых, веб-сервер обеспечивает поддержку HTTP (англ. Hypertext Transfer Protocol — гипертекстовый транспортный протокол). Как следует из названия, HTTP указывает, как передавать гипертекст (т.е. связанные веб-документы) между двумя компьютерами.

Протокол представляет собой набор правил для связи между двумя компьютерами. HTTP является текстовым протоколом без сохранения состояния.

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

HTTP задает строгие правила взаимодействия клиента и сервера. Мы рассмотрим сам протокол HTTP в технической статье немного позднее. Пока достаточно знать об этих правилах:

  • Исключительно клиенты могут производить HTTP-запросы, и только на сервера. Сервера способны только отвечать на HTTP-запросы клиента.
  • При запросе файла по HTTP, клиент должен сформировать файловый URL.
  • Веб-сервер должен ответить на каждый HTTP-запрос, по крайней мере сообщением об ошибке.

На веб-сервере HTTP-сервер отвечает за обработку входящих запросов и ответ на них.

  1. При получении запроса, HTTP-сервер сначала проверяет, существует ли ресурс по данному URL.
  2. Если это так, веб-сервер отправляет содержимое файла обратно в браузер. Если нет, сервер приложения генерирует необходимый ресурс.
  3. Если ничто из этого не возможно, веб-сервер возвращает сообщение об ошибке в браузер, чаще всего “404 Not Found”. (Это ошибка настолько распространена, что многие веб-дизайнеры тратят большое количество времени на разработку 404 страниц об ошибках.)

Статический и Динамический контент

Грубо говоря, сервер может отдавать статическое или динамическое содержимое. « Статическое » означает « отдается как есть » . Статические веб-сайты делаются проще всего, поэтому мы предлагаем вам сделать свой первый сайт статическим.

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

Возьмем для примера страницу, которую вы сейчас читаете. На веб-сервере, где она хостится, есть сервер приложения, который извлекает содержимое статьи из базы данных, форматирует его, добавляет в HTML-шаблоны и отправляет вам результат. В нашем случае, сервер приложения называется Kuma, написан он на языке программирования Python (используя фреймворк Django). Команда Mozilla создала Kuma для конкретных нужд MDN, но есть множество подобных приложений, построенных совершенно на других технологиях.

Существует так много серверов приложений, что довольно трудно предложить какой-то один. Некоторые серверы приложений заточены под определенные категории веб-сайтов, такие как блоги, вики-страницы или интернет-магазины; другие, называемые CMSs (системы управления контентом), более универсальны. Если вы создаете динамический сайт, потратьте немного времени на выбор инструмента, который соответствует вашим потребностям. Если вы не хотите изучать веб-программирование (хотя это увлекательно само по себе!), то вам не нужно создавать свой собственный сервер приложения. Это будет изобретением очередного велосипеда.

Следующие шаги

Теперь, когда вы познакомились с веб-серверами, вы можете:

HTTP протокол: основные правила Интернета, которые должен знать каждый веб-разработчик. Как браузер взаимодействует с сервером.

HTTP сервер или веб-сервер: назначение, функции и роль сервера в HTTP

Здравствуйте, уважаемые посетители сайта ZametkiNaPolyah.ru. Продолжаем знакомиться с протоколом HTTP в рубрике Серверы и протоколы и ее разделе HTTP протокол. Давайте теперь посмотрим на HTTP сервера, которые у нас существуют. Вообще говоря, стандарт HTTP не делает строго разделения на сервер и клиент, зачастую бывает так, что приложение может являться одновременно и HTTP сервером и HTTP клиентом. Сразу скажу, что отдельно рассматривать HTTP клиенты мы не будем, так как я не вижу в этом практического смысла, потому что с клиентами, в отличие от HTTP серверов, вы сталкиваетесь каждый день.

HTTP сервер или веб-сервер

HTTP сервер или веб-сервер – это программа, которая понимает, что нужно клиенту и выдает ему ответы в виде HTML страниц, на которых может содержаться различная информация: изображения, тексты, скрипты, файлы, медиа данные (видео и аудио) и многое другое. HTTP сервер принимает HTTP запрос от клиента (клиентом может быть браузер, мобильный телефон, телевизор или электрочайник, если у него есть функция выхода в интернет) и дает ему HTTP ответ, хочу обратить ваше внимание на то, что в нагрузку к HTTP ответу не обязательно должен идти ответ в виде HTML страницы, данные могут быть и другими.

Разница между веб-сервером и HTTP сервером

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

Функции HTTP сервера. Функции веб-сервера

Рассмотрим основные функции, которые выполняет HTTP сервер:

  • основной функцией является поддержка взаимодействия между компьютерами в сети по протоколу HTTP;
  • HTTP сервер может вести свои журналы: ошибок, обращений пользователей и другие;
  • шифрование данных (HTTP протокол не поддерживает шифрование, для этого есть протоколы SSL и TLS, вы можете прочитать про кодирование в HTTP и безопасность в HTTP);
  • HTTP сервер должен уметь распределять нагрузку;
  • сжимать содержимое ответов;
  • HTTP сервер может быть конечным, а может быть транзитным, во втором случае его называют прокси;
  • HTTP сервер должен уметь кэшировать;
  • сервера HTTP версии 1.1 должны поддерживать постоянные HTTP соединения;
  • сервера должны уметь управлять HTTP обсуждением;
  • и многое другое.

Функции же веб-сервера в его исконном понятие гораздо шире. Например, веб-сервер AMPPS включает в себя сразу несколько различных серверов, приложений или серверных технологий, в том числе и HTTP сервер Apache, хотя функции Apache несколько шире, чем функции просто HTTP сервера. Пример еще одной сборки веб-сервера может быть Деневер, которая на данный момент уже сильно устарела.

Самые популярные HTTP и веб-серверы

Вообще, список функций веб-сервера или сервера HTTP зависит от программы, которая выполняет эти функции. Поэтому давайте перечислим самые популярные HTTP серверы:

  • Apache – наиболее популярный и распространенный HTTP сервер, используется для Unix систем, но есть версии и для ОС семейства Windows. Данный HTTP сервер является свободным;
  • ISS – веб-сервер от компании Microsoft, распространяется бесплатно с операционными система семейства Windows;
  • nginx – свободный HTTP сервер, разрабатываемый российским программистом Игорем Сысоевым, стоит отметить, что многие крупные проекты использует веб-сервер Игоря Сысоева.
  • Google Web Server – этот веб-сервер распространяется и поддерживается компанией Гугл, за основу они взяли HTTP сервер Apache и доработали его.
  • Cherokee – свободный веб-сервер, особенность которого заключается в том, что управлять им можно только через веб-интерфейс.

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

Лёгкие Web-серверы

Специализированные HTTP-приложения дополняют Apache и другие ведущие Web-серверы

Применение в проектах «лёгких» Web-серверов, таких как lighttpd , litespeed и mongrel , дает впечатляющие преимущества. В этой статье мы представляем обзор возможностей и показываем, как их можно применять.

Что должен делать Web-сервер?

В первую очередь надо понять, что мы исследуем (подробности см. в разделе Ресурсы). Основное действие конечного пользователя в Интернете – это «переход на Web-страницу». На самом общем уровне это предполагает совместную работу пары приложений:

  • Web-браузера, такого как Firefox или Internet Explorer, который показывает в удобной для человеческого восприятия форме запрашиваемую страницу, которую он получает от…
  • Web-сервера, находящегося, как правило, на удалённой машине, который отвечает на запрос страницы потоком данных в формате HTML или аналогичном.


С браузерами имеют дело Web-пользователи, которые подходят к их выбору и анализу с надлежащей тщательностью. Напротив, серверы видны только техническому персоналу сайтов. Более того, хотя существует множество различных Web-серверов, около 90% всех сайтов, согласно недавним исследованиям Netcraft, работают всего на двух из них — Apache и Internet Information Server (IIS). Оба эти сервера – тщательно проработанные продукты, обладающие не только очень длинным списком встроенных возможностей, но и процветающим «вторичным рынком» книг, дополнений, консультаций, провайдеров и т.д. Надо ли вновь изобретать обычное колесо?

Да. Web-сервер оценивается по целому ряду важнейших параметров:

  • Эффективность: как быстро он отвечает на запрос?
  • Масштабируемость: продолжает ли сервер работать надёжно, когда к нему одновременно обращаются много пользователей?
  • Безопасность: совершает ли сервер только те операции, которые должен? Какие возможности он предлагает для аутентификации пользователей и шифрования потока обмена информацией? Делает ли его использование более уязвимыми соседние приложения или хосты?
  • Работоспособность: какие у сервера режимы отказа и аварийные ситуации?
  • Соответствие стандартам: поддерживает ли сервер соответствующие RFC?
  • Гибкость: можно ли настроить сервер для принятия большого количества запросов или динамических страниц, требующих значительных вычислений, или сложной аутентификации, или .
  • Требования к платформе: на каких платформах возможно использование сервера? Предъявляет ли он особые требования к аппаратной платформе?
  • Управляемость: легко ли установить и обслуживать сервер? Совместим ли он с организационными стандартами по ведению журналов, аудиту, оценке затрат и т.д.?

Apache и IIS не могут оптимизировать так много критериев одновременно. В принципе ясно, что нишевые продукты могут превзойти лидеров рынка по крайней мере в одной-двух из этих характеристик.

Самое интересное в лёгких Web-серверах, то, почему они заслуживают такого обзора, как этот – это их далеко не теоретическая конкурентоспособность. Внимательное исследование показывает, что они могут предложить очень многое и за счёт этого успешно конкурировать с Apache и IIS даже во многих обычных ситуациях. Хотя разумно было бы предположить, что лидеры рынка тщательно оптимизированы, чтобы быть непобедимыми (например) в производительности, многие мелкие конкуренты работают быстрее при простом отображении статических Web-страниц. Если вы проделаете свои собственные тесты с этими Web-серверами, у вас возникнет чувство, что вы случайно оказались на гоночном треке на карте и каким-то непостижимым образом обгоняете «порше» и «вайперы». И это еще не всё: временами лёгкие Web-серверы дополняют своих больших братьев, а не только соревнуются с ними. Даже если вы знаете, что будете использовать Apache, иногда удается получить от него гораздо больше, объединив его с лёгким партнёром. Часто наилучшее решение состоит в кооперации между двумя или более Web-серверами.

Лёгкость Web-сервера

«Лёгкость», на которой фокусируется этот обзор – это скорее субъективная характеристика, как «искусство» или «аромат». Обычно «лёгкий» подразумевает простой, легко инсталлируемый, хорошо налаженный, нетребовательный и устойчивый – меньшего размера и менее сложный, чем Apache и IIS, которые в попытке удовлетворить свой большой рынок превратились в довольно громоздкие конструкции. Из-за сложности и размера мы исключаем из рассмотрения Java Web Server, AOLserver и Zeus, несмотря на их интригующую переносимость и производительность.

Достаточно лёгкие серверы открывают возможности, недоступные лидерам рынка и другим «тяжёлым» альтернативам. К примеру, весь сервер может поместиться в одном файле. Это удобно для разработчика, так как позволяет носить с собой все инструменты, которые нужны ему для продуктивной работы; даже если вы используете на вашем производственном сервере Apache, вы можете сидеть в гостиничном номере и экспериментировать с новыми идеями, запуская их на лёгком сервере, инсталляция которого занимает секунды. Также из-за своей нетребовательности лёгкие серверы успешно функционируют на машинах, которые просто не могут выдержать тяжесть IIS.

Упаковка в один файл

Упаковка в один файл

Apache требует аккуратной инсталляции многих файлов, разбросанных по нескольким каталогам. Контраст с описанными ниже Web-серверами, некоторые из которых помещаются в одном исполняемом файле, разителен. Одна из специальностей моего работодателя, Phaseit, – развёртывание и сборка установочных пакетов, и мы умеем сделать инсталляцию Apache на вид проще, чем обычно. Но даже когда мы используем наш лучший способ, всё-таки есть огромная разница в «следах» от Apache или IIS или лёгких серверов: первые просто занимают много места.

Маленькие лёгкие Web-серверы также неплохо работают на машинах малой производительности. В нашей собственной компании (Phaseit – см. врезку) мы используем специализированное оборудование, работающее на промышленных компьютерах в удалённых системах, в жёстких условиях или в условиях недостаточного электропитания. В этих ситуациях большим преимуществом является возможность обрабатывать Web-страницы каким-то приложением, которое не требует большой производительности или пространства на диске; это значит, что наши машины могут иметь встроенные доступные через Web управляющие консоли, без сложностей разработки и накладных расходов, характерных для Apache.

Почти все лёгкие Web-серверы имеют в той или иной степени открытый исходный код. Если нам требуется особое поведение Web-сервера, то описанные ниже серверы настолько малы, что их легко понять и, следовательно, усовершенствовать (есть лишь пара исключений). Эти Web-серверы – отличный исходный материал для проектов, в которых Web-серверы встраиваются в специальное ли оборудование или в специфические приложения, предназначенные для работы на компьютерах общего назначения. Они также широко используются на обычных Web-сайтах:

  • YouTube использует lighttpd для быстрой доставки архивированного контента, например, видео;
  • cdServe работает на CD-дисках «German Woodworking Machinery and Tools»;
  • LiteSpeed «отметился» в twitter, www.funnyoride.com, www.airliners.com, WordPress.com, fanfiction.com, SlashGear, www.forumactif.com и в других заметных Web-сайтах;
  • OpenSUSE, RubyOnRails, MarkaBoo и несколько других заметных сайтов опираются на Mongrel;
  • thttpd работает на ht.com, mtv.com, The Drudge Report, garfield.com и др.
  • и т.д.

Вот пример удобства лёгких серверов для разработчиков: в нашей компании мы имеем дело со специальным оборудованием для офисной телефонии. С ним используется специализированное программное обеспечение, которое работает как обычное Linux®-приложение. С помощью всего одного дополнительного файла и небольшой настройки init.d легко добавить высокоэффективную «Web-консоль», которая обеспечивает управляющий интерфейс для аппаратного и программного обеспечения. Конечные пользователи получают возможность отслеживать и конфигурировать свою аппаратуру из любого браузера без установки специального оборудования и других сложностей, которые были характерны для «вертикального» оборудования.

Сервис-ориентированные архитектуры (SOA) имеют репутацию трудных и капризных. По крайней мере часть проблем, по нашему опыту, решается правильной реализацией Web-сервиса. С помощью лёгких Web-серверов мы организуем быстрые установки SOA для демонстраций.

Лёгкие серверы играют свою роль даже в реальных вычислительных центрах, включая перечисленные выше солидные сайты и не только их. Особо высокопроизводительные сайты сегментируют свои операции, чтобы извлечь максимальную выгоду из кэширования, прокси-серверов и т.д. Сайт на основе Apache, к примеру, может иметь архитектуру, в которой медленно изменяющиеся изображения доставляются посредством «минималистского» Web-сервера из выделенной файловой системы. То, что видит в действительности конечный пользователь – это результат командной работы Apache и одного или нескольких дополнительных Web-серверов, каждый из которых играет роль, в которой он превосходит остальных. Такая конструкция может дать очень быстрые результаты с минимальными затратами на вычисления.

Цели и средства

Хотя лёгкие Web-серверы имеют много общего, внутри данной категории есть и различия. Большинство серверов написаны на C, но среди серверов, которые я тестировал, есть и ряд успешных реализаций на других языках, в том числе на Erlang, Java, Lisp, Lua, Perl, Python и Tcl. Если вы предпочитаете какой-либо язык, вы, возможно, найдёте Web-сервер, написанный на нем.

Для того чтобы выбрать «редкий» язык, может быть множество специфических причин:

  • Образование: работа с лёгким Web-сервером – это серьёзная, но не запредельная задача. Это хороший способ получить опыт работы с языком.
  • Кооперация: в то время как лёгкий Web-сервер, написанный на С, обычно укладывается в 10-50 килобайт, а исполняемые файлы более высокоуровневых языков занимают от 100 килобайт до нескольких мегабайт, исходный код для полного Web-сервера на языке высокого уровня может занимать всего несколько тысяч байт. Такой небольшой код намного легче использовать совместно с коллегами, чем модифицировать Apache.
  • Исследование: языки высокого уровня делают облегчают эксперименты – например, для добавления новых возможностей HTTP/1.1 может потребоваться всего несколько дополнительных строчек кода. Эти лёгкие серверы – удобный экспериментальный материал.
  • Модификация: добавление HTTP-сервера к существующему приложению, уже написанному на языке высокого уровня, может потребовать увеличения исходного кода всего на несколько строк.

Хорошим примером здесь может служить Athana. Это Web-сервер, написанный на Python. Он поддерживает HTTP multipart (uploading), сессии, cookies и многое другое. Существующий в настоящее время в версии 0.2.1, Athana пока помещается в одном прекрасно организованном исходном файле.

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

Какие конкретные продукты стоят за этими возможностями? Даже ограничившись «лёгкими» серверами, мы получаем необозримо огромный выбор. Рассмотрим эти серверы по подкатегориям: ультралёгкие, особо защищенные, использующие особый язык и так далее.

Среди этих категорий я особенно люблю ультралёгкие Web-серверы – те, которые намного меньше, чем Apache. Приложения такого размера могут уместиться в голове обычного человека; их работу можно представить себе систематически и строго, чтобы строго доказать их безопасность или масштабируемость. К числу очень маленьких Web-серверов относятся:

  • Cheetah Server, содержащий менее тысячи строк на C.
  • DustMote, очень маленький Web-сервер, реализованный в одном Tcl-исходнике размером примерно 3000 байт.
  • fnord занимает менее 20K, в зависимости от платформы и конфигурации. Несмотря на маленький размер, он поддерживает виртуальный хостинг, CGI и keep-alive.
  • ihttpd, имея менее 800 строчек C, умеет обслуживать страницы, включая CGI, посредством inetd .
  • mattows поддерживает CGI, насчитывая при этом всего лишь 600 строк на C.
  • Scrinchy, несмотря на маленький размер — около 30 KB — поддерживает примечательно много языков сценариев, включая специализированный стековый язык под названием Sy.
  • ZWS показывает, как можно написать содержательное приложение – в данном случае сервер HTTP 0.9+ – немногим более чем из 500 строк хорошо откомментированного zsh (!).

Маленький размер не препятствует серьёзному использованию этих серверов; fnord, например, обслуживает тысячи одновременных соединений.

Возможно, наиболее впечатляющая категория легких серверов по достижениям – высокопроизводительные серверы:

  • cghttpd – минимальный Web-сервер, который можно рассматривать как эксперимент по использованию асинхронных средств, доступных в ядрах Linux серии 2.6.
  • darkhttpd – быстрый однопоточный сервер HTTP/1.1.
  • Gatling специально разработан для высокой производительности. Поддерживает FTP, IPv6, виртуальный хостинг, CGI и т.п.
  • Kernux – модуль ядра Linux, который обеспечивает выполнение HTTP-демона.
  • lighttpd – пятый по популярности Web-сервер в мире (и его доля растет!). Он оптимизирован под большое количество одновременных соединений: «Типичный сценарий – использование lighttpd как сервера, разгружающего основной сервер, для выдачи статического контента. «
  • LiteSpeed Web Server – коммерческий лёгкий Web-сервер, в котором особый упор сделан на производительность и безопасность. LiteSpeed Technologies Inc. заявляет об ускорении в шесть раз для статического контента и несколько более скромных показателях для интерпретируемых страниц.
  • Miniature JWS, известный также как tjws — написанный на Java Web-сервер, который обрабатывает сервлеты, JSP и тысячи параллельных соединений, занимая 77 килобайт. Его автор характеризует его так: «на 10% быстрее, чем Apache 2.x.»
  • Yaws – высокопроизводительный сервер HTTP/1.1, написанный на Erlang.

Многие Web-серверы реализованы как классы или библиотеки, разработанные для встраивания в большие приложения. Среди них особенно интересны:

  • EHS – «встраиваемый HTTP сервер,» класс C++, разработанный для встраивания в большие C++ приложения; и
  • Embedded TCL Web Server, простейший Web-сервер, поддерживающий SSL и Basic Authentication и при этом фантастически быстрый – по замерам автора, не менее быстрый, чем lighttpd и AOLserver. Содержит меньше сотни строк Tcl.

На языке Python реализованы несколько Web-серверов, которые заполняют необычные ниши, в том числе:

  • cdServer — маленький простой http-сервер на Python, «разработанный для выдачи (статического) контента с CD-ROM». Имеет ограниченные возможности в обслуживании динамического контента. У нас есть несколько проектов, которые включают доставку непортящихся «live CD», и инструменты типа cdServer являются для них критическими.
  • edna – остроумный MP3-сервер на Python, основанный на HTTP.

Есть и другие интересные лёгкие Web-серверы, реализованные на Perl и на других, не так хорошо известных, языках:

  • Camlserv – полный Web-сервер, написанный на ocaml и нацеленный на «высокоинтерактивные Web-страницы». Умещается в нескольких тысячах строчек ocaml, большинство из которых посвящено специальным возможностям работы с MySQL и HTML.
  • dhttpd протоколирует обращения в том же формате, что и Apache. Имеет встроенный Perl-интерпретатор для поддержки CGI, виртуальный хостинг, IPv6, управление пропускной способностью и возможности безопасности.
  • DNHTTPD написан на Perl для UNIX®. Он поддерживает виртуальные хосты, SSL соединения, CGI и другое.
  • Jellybean – написанный на Perl сервер Perl Object Server, основанный на HTTP.
  • lns.http – общая Web-среда на LISP HTTP/1.1.
  • Mongrel – библиотека и сервер для HTTP, написанные на Ruby.
  • Nanoweb – быстрый, устойчивый Web-сервер, написанный на PHP. Имеет обширный список возможностей, включая полное соответствие HTTP/1.1, контроль обращений, аутентификацию, виртуальный хостинг, SSL совместимость и т.д.
  • Naridesh – написанный на Perl Web-сервер.
  • OpenAngel – написан на Perl. Его фокус – безопасность.
  • Xavante – HTTP/1.1 Web-сервер, написанный на Lua.
  • XSP написан на C# и выполняет роль ведущего узла ASP.NET.

Однажды вам могут понадобиться и некоторые другие написанные на C лёгкие Web-серверы с необычными дополнительными возможностями:

  • ABYSS переносим между UNIX и Win32 и претендует на то, чтобы «быть полностью HTTP/1.1-совместимым Web-сервером». Экономичен в использовании памяти.
  • Anti-Web HTTPD (также «Anti-Web», «awhttpd» и «AW») однопроцессный (не многопоточный), поддерживающий CGI сервер, в котором особое внимание уделено безопасности и простоте.
  • MHTTPD поддерживает MHTTPD Basic Authentication как из внешнего файла, так и при помощи LDAP-сервера.
  • mini-httpd обрабатывает параллельные запросы в одном потоке и нетребователен к хосту в плане памяти и процессора.
  • Naken Web похож на множество других лёгких серверов – поддерживает Basic Authentication, статический контент и т.д. – но авторы нацеливали его на операции для Web-камер и применяли на Gumstix, WRT54GL, OpenWrt и других инновационных платформах.
  • Null httpd – многопоточный, но простой и портативный Web-сервер.
  • Seminole – коммерческий Web-сервер, не требует много памяти и имеет много возможностей.
  • thttpd поддерживает регулирование пропускной способности, реализует chroot , Basic Authentication и т.д.

Заключение

Мир Web-серверов состоит не только из Apache и IIS, их гораздо больше. В вашем распоряжении широкий выбор альтернативных решений – настолько маленьких, что их можно полностью понять, и при этом достаточно быстрых для серьёзных приложений. Возможно, одно из них поможет вам ускорить ваш следующий проект.

Детально о главном: обозреваем локальные сервера для web-разработки

Дата публикации: 2020-10-03

От автора: у вас в руках PSD-макет сайта, и нужно начинать его верстку. Если предстоит создать «визитку», то ничего сложного вас не ждет — лишь сверстать и разместить в сети. Но если бэк-энд обещает быть непростым, то сайт придется тестировать на сервере вне Интернета — на вашем компьютере. Именно для этого созданы приложения, позволяющие эмулировать работу сервера. Мы решили сделать детальный обзор локальных серверов для web-разработки и показать, какие инструменты используются в современном девелопменте.

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

Битва корифеев: Denver против Open Server

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

Denver forever and ever

В 2002 году вышла первая версия пакета инструментов, которая имела аббревиатуру ДНВР — Джентельменский набор Веб-Разработчика. Почти сразу решение набрало большую известность, так как:

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

было просто в установке. Единственное, что требовалось от юзера — это распаковать файлы, а программа настраивала все сама;

набор имел в своем распоряжении сервер Apache, СУБД MySQL, PHP, Perl, sendmail и многие другие «фишки», которые дополнялись от версии к версии;

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

Более десяти лет он доминировал на арене локальных серверов и даже сейчас находит своих поклонников. Самоучители по верстке сайтов продолжают советовать его для тех, кто только начинает работу в сфере веб-разработки. Денвер абсолютно не перегружает систему. Он работает незаметно для самого пользователя. Единственным напоминанием является дополнительный локальный диск, который по умолчанию имеет имя «Z».

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

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


Отсутствие графического интерфейса тоже огорчало. Компьютеры стали высокопроизводительными, и их ресурсы не нужно было экономить. Тот рационализаторский подход, который сделал Денвер известным, оставил его позади в 2013 году.

На горизонте начали появляться новые решения, которые по удобству и функционалу значительно опережали «джентльменский набор». Потому, выход версии Денвера 2013 года стал последним. Была предпринята попытка создать более мощную версию, которая называлась Endels — New Denwer Local Server, но, по стечению обстоятельств, она не набрала той известности, что ее предшественник. Пакет имел существенное преимущество — Endels уже умел запускаться с переносного носителя, на лету переключаться между версиями PHP и, что наиболее важно, радовал своих пользователей неплохим графическим интерфейсом.

Open Server: шаг навстречу изменениям

Когда этот WAMP/WNMP вышел в свет, то стал своеобразным мессией для веб-разработки. Во-первых, он, как и Денвер, был прост в установке и удалении. Работа с ним была значительно легче благодаря дружелюбному интерфейсу, а функционал впечатлял даже тех гиков, которые любят все установить и настроить вручную. Конечно, даже сайты и приложения с Денвер кое-как «натягивались» на существующие тогда CMS. Но взаимодействие Open Server и уже набравшего оборотов WordPress впечатляло.

Open Server включил в свой пакет веб-сервер Nginx — это более легкий коллега Apache. На момент написания статьи, большинство веб-продуктов в мире работают на симбиозе этих двух серверов. Первый хорош для фронтенда: он работает с запросами пользователя и выдает необходимый статический контент, в то время как Apache имеет дело с динамическим. Nginx используется передовыми страницами по всему миру: ваш уютный vk.com и даже Facebook в их числе. Но рассматривать Nginx и Apache как альтернативу друг другу не стоит — лучше всего они проявляют себя при одновременном использовании.

В общем, примечательным отличием Open Server является вариативность его инструментов. Он предлагает сразу два HTTP-модуля, три СУБД и множество PHP-модулей. При этом, переключение между ними не вызывает трудностей у оператора.

Также, несмотря на свою «увесистость», он остается достаточно быстрым. В отличие от Денвера, который даже для своего времени весил чуть больше, чем ничего, Open Server требует внушительный гигабайт памяти на диске и 200 мегабайт RAM. Конечно, для современного читателя это кажется мелочью. Тем более, что большой вес сполна компенсируется портативностью.

Разработчики позиционируют OS как полностью портативный. Он не засоряет системные файлы, как его предшественники. Также, запуск с съемного носителя полностью решает проблему с большим кругом разработчиков, которую мы упоминали выше. Разработчик может просто носить свой «сервер» на флешке и запускать на любом подходящем девайсе.

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

XAMPP лучше многих

Это еще одна сборка веб-сервера, которая имела умеренную популярность во времена доминирования Денвера и Open Server, и имеет точно такую же и сейчас. Если аббревиатура WAMP для подобных пакетов означала «Windows, Apache, MySQL, PHP», то разработчики этой платформы решили предложить собственную альтернативу. В их названии «Х» символизирует кроссплатформенность сборки — сервер будет одинаково хорошо работать на всех операционных системах, включая «яблочные».

«M», которая предназначалась для MySQL, отвечает за одно из ответвлений этой системы — MariaDB. Считается, что это весьма перспективная разработка, поддержкой которой занялся даже Google, а ведущим разработчиком является автор идеи My. Дополнительная «Р» отвечает за поддержку языка Perl — родоначальника такого популярного сегодня PHP.

На самом деле, XAMPP настолько неплохая система, что иногда удивляешься ее посредственной используемости среди веб-разработчиков. Пакет обладает весьма достойным интерфейсом, легко устанавливается распаковыванием файлов и позволяет быстро оперировать. Она однозначно лучше Денвера (как почти все современные платформы), и не уступает OS во многих вопросах. Чтобы понять, насколько она проста в использовании, достаточно упомянуть, что ее принято называть «сборкой лентяя» — отличная характеристика дружелюбности.

Некоторые разработчики отказываются от XAMPP только потому, что UAC от Windows необходимо отключить перед началом работы. Их охватывает страх о том, что программа имеет цель нанести какой-либо вред их компьютерам. Но все подобные выводы, конечно же, ложь. Вся загвоздка в том, что XAMPP был разработан до появления UAC на свет, и, почему-то, не попал в список доверенных приложений. Код программы был тщательно проинспектирован — он не несет в себе угрозы.

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

И если кто-то в вашем окружении назовет XAMPP «перегруженным Денвером», то не обращайте внимания — так было очень давно. Сегодня платформа весьма современна, а ее последняя версия вышла совсем недавно. И хотя общество все же не сделало эту систему фаворитом, в сердце автора этих строк она останется навсегда.

Выбор отважных — VertigoServ

Кроме заезженных Open Server и Denver, в свое время был достаточно юзовым и этот программный пакет для имитации работы сервера. Подход разработчиков, судя по всему, был таков: создать лучший вариант, объединив сильные стороны двух самых известных конкурентов.

Vertigo отличался скоростью и стабильностью работы, а также довольно неплохим интерфейсом. Кроме этого, создатели решили включить в комплект Zend Optimizer, который немного ускоряет PHP-скрипты. Но, скорее всего, это был лишь маркетинговый ход: данное приложение является единственным продуктом, распространяемым компанией Zend бесплатно. Они же и придумали легенду о том, что скрипт с Optimizer становится на 40% быстрее (на самом деле, нет).

На этом его преимущества заканчиваются: сегодня вы вряд ли встретите апологетов Vertigo (но вероятность все же есть ). Тот же UI, который должен был стать преимуществом сервера, не имел полноценной поддержки русского языка: лишь английский и польский. В то время он поддерживал лишь пятую версию PHP, один веб-сервер и одну СУБД. Возможно, потому и проиграл гонку вооружений. Как результат, Vertigo стал немного лучше Денвера (что еще нужно доказать!) и значительно хуже OpenServer.

OS — победитель?

В начале 10-х годов это можно было утверждать с уверенностью. Да, он превзошел Денвер по функционалу и стал значительно комфортнее, чем остальные WAMP/WNMP с графическим интерфейсом. К тому же, он отлично вооружен даже для современного разработчика.

Open Server продолжает развиваться как платформа веб-разработки: несколько месяцев назад вышла свежая версия. Взаимодействие с тяжелой, но привычной среднестатистическому пользователю WordPress продолжает радовать: они будто созданы друг для друга. Это также не мешает работать и с другими CMS — локальный сервер хорошо контактирует и с ними.

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

Плеяда свежих решений

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

Яблочный сервер

Все мы помним время, когда увидеть продукцию Apple можно было лишь по телевизору, и то нечасто. Сегодня она заполнила наше окружение: от плееров до полноценных машин. Это же касается и веб-разработки: делать приложение на macOS теперь даже круто .

Вместе с продукцией «Яблока», распространенность ждала и их решение для создания локального сервера под названием MAMP PRO. Он, конечно же, платный, но имеет и вариант для экономных — без приставки, символизирующей профи. Среди преимуществ обеих версий можно назвать интерфейс — конечно же, он отличный (на этом в Apple не экономят). Программа проста в установке и работе, а постоянная поддержка не дает отставать от современных тенденций в развитии технологий.

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

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

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

Самый трендовый и прогрессивный

Так можно сказать только об одном решении, которое сокращенно называют VVV. Развернутое название звучит как Varying Vagrant Vagrants и в переводе значит что-то вроде «бродячих бродяг» — автор не нашел связи между названием и сутью.

В отличие от сборок, которые мы обсуждали, VVV никак не подойдет для начинающего пользователя. Это даже не похоже на Open Server и его аналоги. Чтобы разработать подобное решение, создателям пришлось заглянуть в корень спроса на старые решение: создание окружения для запуска нужных сервисов. Для этого они создали совокупность конфигураций, которые можно свободно взять с GitHub и выполнить на своей машине. Однако для этого вам потребуются еще приложения.

По сути, VVV — это инструкция для компьютера, которую он использует для запуска локального сервера. Чтобы ее выполнить, необходима программа VirtualBox, которая находится в свободном доступе. Она запускает виртуальную машину и абсолютно не привязана к конкретной платформе, будь то Windows, MacOS или линуксоидная OS.

Для управления системой необходим Vagrant. Это что-то вроде менеджера виртуальных машин, с помощью которого вы и получите необходимое окружение. В целом, подход весьма хорош и пользуется спросом среди продвинутых веб-девелоперов. Но, к сожалению, даже самые «зубастые» отмечают этот подход, как чересчур заумный, несмотря на то, что он полностью может удовлетворить WordPress-разработчика.

Выводы вместо заключения

Как бы это иронично ни звучало, но даже некоторые продвинутые разрабы до сих пор используют Денвер и не желают смириться с наступившим 2020 годом. Простота и стабильность работы привлекает их, а некоторые недочеты они предпочитают исправлять самостоятельно. Некоторые, даже приспособили ее к «свитчам» CMS в один клик и поддержке всех современных решений для веб-девелопмента.

В целом можно уверенно заявить о том, что все платформы хорошо находят своего пользователя. Это как ситуация с CMS: WоrdPress известней всех, но веб-разработчики находят инструменты и получше. Каждый человек использует то, что ему удобно. И дело здесь не всегда во вкусах и предпочтениях. Большую роль играет та задача, которую он выполняет.

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

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

Также, до сих пор «рабочим» вариантом является мануальная настройка локального сервера. Самые продвинутые пользователи самостоятельно устанавливают все необходимые компоненты. Они не желают перегружать систему балластом, а потому сами формируют свой пакет. Как правило, набор разработчика средней руки — это «Apache + РНР + MySQL». Все остальные утилиты укомплектовываются согласно требованиям разрабатываемого веб-приложения или сайта.

Не стоит также забывать, что в сети до сих пор существуют фанаты таких сборок, как WampServer, EasyPHP, AppServ и других. Их существование также трудно доказать, как и опровергнуть, но факты говорят сами за себя: обновленные версии датируются 2020–2020 годами.

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

Как создать сайт самому?

Какие технологии и знания необходимы сегодня, чтобы создавать сайты самостоятельно? Узнайте на интенсиве!

Web сервер

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

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

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

Посмотреть список процессов в Linux можно командой ps aux либо top

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

Здесь нужно сделать небольшую ремарку насчёт «слушать сетевой сокет». Сетевое взаимодействие между программами двух компьютеров осуществляется с помощью протокола TCP, поверх которого уже работает HTTP. Для обращения к другому компьютеру нужно знать два параметра: IP-адрес и порт. Так вот «слушать сетевой сокет» означает занять определённый порт (на определённом сетевом интерфейсе) и дать возможность обращаться к процессу через него. Именно по номеру порта операционная система понимает, к какому процессу пытаются обратиться.

Как создать свой первый безопасный веб-сервер, готовый к продуктиву

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

Для прогона тестов мы будем использовать Amazon EC2, но можно взять и Amazon LightSail, Digital Ocean, Vultr или другой сервис. Все они конфигурируются одинаково, так что выбирайте тот, который вам по душе.

Создаём публичный и приватный SSH-ключи

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

SSH-ключи мы будем создавать с помощью ssh-keygen.

В результате получим два файла: id_rsa и id_rsa.pub (приватный и публичный ключи). Никогда и никому не передавайте свой приватный ключ.

Подробную инструкцию по созданию ключей вы найдёте здесь.

Импорт публичного ключа в Amazon

Импортируем только что созданный публичный ключ в платформу Amazon.


  1. Заходим в консоль управления Amazon.
  2. Кликаем AWS services → Compute > EC2
  3. Кликаем на левое меню Network & Security → Key Pairs
  4. Кликаем «Import Key Pair» и загружаем публичный ключ (id_rsa.pub)

Создаём свою виртуальную машину

Установим в Amazon EC2 виртуальную машину под управлением Ubuntu. Настройка подробно описана здесь:

  1. Заходим в консоль управления Amazon.
  2. Кликаем AWS services → Compute → EC2
  3. Выбираем запускаемый экземпляр.
  4. Выбираем один из образов. В нашем случае это будет Ubuntu Server 16.04 LTS (HVM), с SSD-накопителем (но вы можете выбрать то, что вам больше подходит).
  5. Выбираем виртуальную машину (в соответствии с вашими нуждами). Кликаем «Review» и «Launch».
  6. Открываем новую вкладку и импортируем в Amazon созданный публичный ключ.
  7. Здесь нас попросят «выбрать существующую пару ключей или создать новую» («Select an existing key pair or create a new key pair»). Жмём «выбрать существующую» («Choose an existing key pair»). Выбираем ранее загруженный ключ.
  8. Кликаем «Launch Instances».
  9. Кликаем на ссылку виртуальной машины, которую мы только что создали.

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

Подключаемся к новому серверу

Обращаемся к виртуальной машине по SSH.

Пишем в терминале:

  • : пользователь Linux-системы. В случае с Amazon используйте ubuntu, на других сервисах — root
  • : IP-адрес созданной нами виртуальной машины. Это поле «Public DNS (IPv4)» во вкладке «Description» нашего сервера.

: полный путь к сгенерированному ранее приватному ключу (например, /Users/flavio/.ssh/id_rsa).
-i

: это можно пропустить, если вы добавили ключ в свой SSH-агент.

Даём доступ новому пользователю

Создадим новый аккаунт пользователя по имени “wizard”:

Дадим “wizard” разрешение выполнять sudo. Откроем файл:

И зададим содержимое:

Скопируем публичный ключ (PATH-TO-PUBLIC-KEY) и вставим в удалённый экземпляр /home/wizard/.ssh/authorized_keys. Настроим разрешения:

Обеспечиваем безопасность

Обновляем все установленные пакеты.

Меняем SSH-порт с 22 на 2201. Для конфигурирования файрвола (ufw, Uncomplicated Firewall, незатейливый файрвол) открываем файл /etc/ssh/sshd_config:

и меняем эти данные:

Конфигурируем Uncomplicated Firewall (UFW) так, чтобы пропускались только входящие подключения SSH (порт 2201), HTTP (порт 80) и NTP (порт 123).

Конфигурируем серверные часы

Устанавливаем в качестве локального часового пояса UTC:

Выбираем опцию ‘None of the Above’ и снова UTC.

Отключаемся и добавляем наш ключ в SSH-агент

Для отключения вводим:

а потом добавляем ключ.

Добавляем в Amazon разрешения по порту

Это необходимо сделать в Amazon. Зададим SSH-порт, который будем использовать также на Amazon.

  1. Заходим в консоль управления Amazon.
  2. Кликаем AWS services > Compute > EC2
  3. Кликаем на левое меню Network & Security → Security Groups
  4. Выбираем группу безопасности, относящуюся к нашей виртуальной машине.
  5. Кликаем Action > Edit Inbound Rules
  6. Кликаем «добавить правило» («Add Rule») и задаём: Type: Custom TCP, Port Range: 2201, Source: 0.0.0.0/0 и Description: SSH

Подключаемся с новыми данными

Теперь вы можете подключиться к серверу по новому порту как новый пользователь:

Теперь у вас есть сервер, готовый обслуживать ваше приложение.

Что такое веб-сервер

простыми словами

Необходимые
знания:
Вы должны уже знать, как работает Интернет и понимать разницу между страницей, сайтом, сервером и поисковой системой.
Цель:

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

Примитивная схема работы: клиент отправляет http-запрос — сервер его обрабатывает и выдает ответ.

Большинство веб-серверов реализовано на базе программного обеспечения (ПО) Apache, NGINX, Lighttpd или их комбинации. Это бесплатные программы и их можно скачать с официальных сайтов.

Основную массу составляют сервера на базе Linux и FreeBSD. Основная причина — бесплатность и сверхнадежность UNIX-систем. Но есть немного веб-серверов на Windows — также с установленным перечисленным ПО или встроенным IIS.

Прочитайте более подробно о веб-сервере на сайте Википедия

Web серверы

nginx

Apache HTTP Server

Выпущена обновленная версия популярного WEB (HTTPD) сервера Apache.

Open Server

Open Server — это портативный локальный WAMP/WNMP сервер.

File Expert

Файловый менеджер со встроенными FTP Server, Web Server, SMB и прочими опциями.

Web-серсвер для устройств на базе ОС Android.

XAMPP

простой в установке дистрибутив Apache для Linux, Solaris и Windows.

Abyss Web Server X1 2.3.2

небольшой персональный Web сервер.

thttpd 2.25b

Компактный http сервер, предназначенный для работы при высоких нагрузках

KF Web Server 3.10

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

Small HTTP Server 3.05.43

Small HTTP Server превращает ваш компьютер в полноценный Web-сервер.

Toolkit for Apache Web Server (Win32)

Набор утилит для администрирования Apache для Win32.

Apache Admin 2.5

Программа позволяет настраивать Apache Web сервер, используя единый графический интерфейс в стиле IIS Web сервера.

Илон Маск рекомендует:  Команды mmx ( начиная с pentium mmx, k6 )
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL