Выбор режима работы web-сервера на личном опыте. Основы функционирования веб-приложений Что нужно для функционирования веб сервера

Если Вы напечатаете в адресной строке вашего браузера http://www.сайт/how-web-server-work/ и нажмете клавишу Enter - эта страничка нашего Веб-сайта появится на экране.

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

Теперь немного подробнее:

URL состоит из трех частей:

1. Протокола (http)

2. Имени сервера (www.сайт)

3. Адреса страницы (how-web-server-work)

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

Следуя протоколу HTTP, браузер послал запрос на сервер, запрашивая файл http://www.сайт/how-web-server-work/

Обратите внимание, что файлы cookie также могут быть отправлены от браузера к серверу.

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

Интернет

Так что же такое «Интернет»? Интернет представляет собой сотни миллионов компьютеров, связанные вместе в компьютерную сеть . Сеть позволяет всем компьютерам взаимодействовать друг с другом. Домашний компьютер может быть связан с сетью Интернет при помощи самых разных способов и устройств – начиная с примитивного модема для телефонной линии, закачивая соединением по локальной сети (LAN ) с Интернет-провайдером (ISP ).

Крупные Интернет-провайдеры поддерживают волоконно-оптические линии для всей страны или региона. Магистральные сети проложены во всем мире, соединенные по волоконно-оптическим линиям, подводным кабелям или спутниковым каналам. Таким образом, каждый компьютер в сети Интернет подключен к любому другому компьютеру в сети Интернет.

Клиенты и Серверы

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

Сервер может предоставить одну или несколько услуг в Интернете. Например, на компьютере-сервере может быть установлено программное обеспечение, позволяющее ему выступать в качестве Веб-сервера, e-mail сервера и FTP сервера. Компьютеры-клиенты, которые присоединяются к серверу, направляют свои запросы к специальному программному обеспечению, работающему на общем компьютере-сервере. Например, если вы используете Веб-браузер на вашем компьютере, он будет «общаться» с Веб-сервером на компьютере-сервере. Ваше e-mail приложение будет «говорить» с сервером электронной почты, и так далее.

IP-адреса

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

Четыре числа в IP-адресе называются октеты потому что они могут принимать значения между 0 и 255 или 2 8 вариантов значений.

Каждый компьютер в Интернет имеет свой уникальный IP-адрес. Сервер имеет статический IP-адрес, который меняется редко. Домашний компьютер часто имеет IP адрес, назначенный провайдером, когда машина соединяется с ним. Этот IP-адрес является уникальным для этой сессии, но может оказаться другим в следующий раз. Таким образом, ISP, нужен только один IP адрес для каждого маршрутизатора, которые он поддерживает, а не для каждого клиента.

Если вы работаете на Windows машине, вы можете просмотреть множество информации об Интернете на вашем компьютере, включая ваш текущий IP-адрес и имя хоста, с помощью команды ipconfig . На UNIX-машине, надо набрать nslookup в командной строке для отображения IP-адреса машины.

Доменные имена

Поскольку большинство людей имеют трудности с запоминанием последовательности цифр, которые составляют IP-адреса, и потому, что IP-адреса иногда нужно менять, все серверы и сайты в Интернете также имеют и удобочитаемые имена, называемые доменными именами . Например, www.. Это проще для большинства из нас — запомнить www.сайт чем запоминать 5.9.205.233

Имя www.сайт на самом деле состоит из трех частей:

1. Имя World Wide Web (www). На самом деле можно обходиться и без явного указания «www», хотя, формально, это будет другая сеть.

2. Доменное имя (qriosity)

3. В зоне домена верхнего уровня (ru)

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

Серверы доменных имен

Набор серверов, называемых серверы доменных имен (DNS) сопоставляет удобочитаемые имена в IP-адреса. Эти серверы содержат простые базы данных, содержащие имена и IP-адреса, и они распределены по всему Интернету. Большинство отдельных компаний, Интернет-провайдеров и крупных университетов поддерживают малые DNS. Существуют также центральные DNS, которые используют данные, поставляемые Регистраторами доменных имен.

При вводе URL-адреса http://www..сайт, передает его на сервер доменных имен, сервер возвращает правильный IP-адрес для www.сайт. Целый ряд серверов имен может быть вовлечен в то, чтобы получить правильный IP-адрес.

Итак, повторим прочитанное: Интернет состоит из миллионов машин, каждая с уникальным IP-адресом. Многие из этих машин – серверы. Это означает, что они предоставляют услуги другим компьютерам в Интернет. Многие из этих серверов являются серверами электронной почты, Веб-серверами, FTP-серверами, серверами облачных сервисов.

Порты

Любой сервер делает свои услуги доступными через Интернет с помощью пронумерованных портов , по одному для каждой службы, доступной на сервере. Например, есть компьютер-сервер, на котором запущен Веб-сервер и FTP-сервер. Веб-сервер, как правило, будет доступен на порту 80, а FTP-сервер будет доступен на порту 21. Клиенты подключаются к сервису на определенный IP адрес и на определенный порт.

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

Если сервер принимает соединения на порту от внешнего мира, и если брандмауэр не защищает порты, вы можете подключиться к заранее обусловленному порту с любого компьютера в Интернет и воспользоваться услугой. Обратите внимание, что нет ничего, что заставляет Вас, к примеру, держать Веб-сервер на порту 80. Если вы установили свой сервер и загрузили программное обеспечение Веб-сервера на нем, вы могли бы поставить Веб-сервер на порту 999, или любом другом неиспользуемом порту. Затем, если, например, Ваша машина будет известна как xxx.yyy.com то к ней могут подключаться с URL http://xxx.yyy.com:999 - «:999» явно указывает номер порта, по которому можно добраться до вашего Веб-сервера. Если порт не указан, то браузер просто предполагает, что Веб-сервер доступен с помощью хорошо известного порта 80.

Протоколы

Как только клиент подключен к службе на данном порту, он обращается к сервису с помощью специального протокола . Протокол — это набор соглашений логического уровня, позволяющий программам обмениваться данными. Для совместной работы компьютеров в сети Интернет используется семейство протоколов TCP/IP . Веб-сервер использует протокол HTTP.

Дополнительно: Безопасность

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

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

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

Дополнительно: Динамические страницы

Что такое динамические Веб-страницы ? Например:

1. Любая гостевая книга позволяет ввести сообщение в HTML-форме, и выводит новые и старые записи автоматически.

2. Любой поисковик позволяет ввести ключевые слова в HTML-форме запроса, и тогда он динамически создает страницу, на основе поиска информации по этим ключевым словам.

Во всех этих случаях, Веб-сервер осуществляет не просто «поиск файла». Он обрабатывает информацию и генерирует страницы в зависимости от специфики запросов. Почти во всех случаях, Веб-сервер, использует так называемые скрипты — программный код, написанный на PHP, Perl, Java и других языках программирования, чтобы совершить этот процесс.

Страницы нашего сайта — тоже являются динамическими, созданными при помощи PHP с использованием баз данных MySQL.

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

Также веб-сервер выполняет функцию исполнения скриптов, например, таких как CGI, JSP, ASP и PHP, которые отвечают за организацию запросов к сетевым службам, базам данных, доступу к файлам, пересылке электронной почты и другим приложениям электронной коммерции.

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

Клиент пользователя, которым преимущественно является веб-браузер, передает веб-серверу запросы на получение ресурсов, обозначенных URL-адресами. Ресурсы – это HTML-страницы, цифровой медиа контент, медиа-потоки, различные изображения, файлы данных, или любые другие данные, необходимые клиенту. В ответ веб-сервер передает клиенту запрошенные им данные. Этот обмен происходит с помощью протокола HTTP.

HTTP (англ. HyperText Transfer Protocol – протокол передачи гипертекста) – это сетевой протокол прикладного уровня передачи данных. Основным принципом протокола HTTP является технология «клиент-сервер», обеспечивающая взаимодействие сети и пользователя.

В случае малой организации веб-сервер может быть целостной системой, которая будет состоять из: HTTP-сервера – служит для запросов к веб-страницам; FTP-сервера – применяется для загрузки файлов через Интернет; NNTP-сервера – выполняет доступ к группам новостей; SMTP-сервера – для электронной почты.

История

Изобретателем первого веб-сервера считается британский ученый Тим Бернерс-Ли. Работая с 1980 года в Европейской лаборатории ядерных исследований (фр. Conseil Européen pour la Recherche Nucléaire, CERN) консультантом по программному обеспечению, он приступил к своим разработкам. В Женеве он для своих собственных потребностей разработал программу «Энквайр» (англ. enquire – спрашивать), которая использовала случайные ассоциации для хранения данных и заложила концепцию для основы Всемирной паутины.

В 1989 году Тим Бернерс-Ли, работал над внутренней сетью организации CERN и предложил основать глобальный гипертекстовый проект, который заключался в публикации гипертекстовых документов, связанных между собой гиперссылками. Внедрение этого проекта, по его мнению, облегчило бы объединение, поиск и обмен информацией для ученых CERN. Для осуществления проекта Тим Бернерс-Ли вместе со своими помощниками изобрел идентификаторы URI и URL, протокол HTTP, а также язык HTML. Все эти технологии теперь широко применяются в современном Интернете и без них уже не обойтись.


В результате выполнения этого проекта Бернерс-Ли разработал первый в мире веб-сервер, называвшийся «httpd», а также первый в мире гипертекстовый веб-браузер для компьютера NeXT, получивший название WorldWideWeb (Всемирная паутина).

Первый веб-браузер работал на платформе NeXTSTEP – объектно-ориентированной, многозадачной операционной системе, и был разработан с помощью Interface Builder. Интерфейс веб-браузера был очень простым, и почти вся информация отображалась в текстовом формате только лишь с несколькими изображениями. Помимо стандартного протокола FTP, Тим Бернерс-Ли использовал новый, изобретенный им, протокол HTTP. В период с 1991 по 1993 год Бернерс-Ли усовершенствовал технические свойства своих новых разработок: идентификаторов URI и URL, протокола HTTP и языка HTML и опубликовал их. Позже веб-браузер был переименован в "Nexus", чтобы не возникло путаницы с названием операционной системы, на которой был разработан браузер и его названием.

Первый в мире веб-сервер и первый веб-браузер работали на персональном компьютере NeXTSTEP; сейчас этот компьютер выставлен в музее CERN (Микрокосм).

Первый в мире веб-сайт Тим Бернерс-Ли разместил по адресу http://info.cern.ch ; сейчас этот сайт хранится в архиве. Первый сайт появился в Интернете 6 августа 1991 года. На этом веб-сайте было дано:

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

Этот сайт также представлял собой первый в мире интернет-каталог. Бернерс-Ли разместил на нем список ссылок на другие сайты и регулярно обновлял его.

12 декабря 1991 года в Стэнфордском центре линейного ускорителя (SLAC) в США был установлен первый в мире веб-сервер.

Основные и дополнительные функции

Все основные и дополнительные функции веб-сервера:

  • Прием запросов от веб-браузеров по протоколу стандарта HTTP с использованием сетевых протоколов TCP/IP;
  • Выполнение поиска и отсылки файлов с гипертекстом или каких-либо документов в браузер по протоколу HTTP;
  • Обслуживание и обработка запросов, типа: mailto, FTP, Telnet и т. п.;
  • Запуск прикладных программ на веб-сервере с последующей передачей и возвратом параметров обработки через стандарт интерфейса CGI;
  • Работа и обслуживание навигационных карт изображений (Image map);
  • Администрация и оперативное управление сервером;
  • Авторизация пользователей и их аутентификация;
  • Ведение регистрационного журнала обращений пользователей к различным ресурсам;
  • Автоматизированная работа веб-страниц;
  • Поддержка страниц, которые генерируются динамически;
  • Поддержка работы протокола HTTPS для защищенных соединений с клиентами.

Описание работы веб-сервера

Веб-браузеры поддерживают связь с веб-серверами с помощью протокола передачи гипертекстовых сообщений (HypertextTransferProtocol, HTTP). Это простой протокол запросов и ответов для пересылки информации с использованием протокола TCP/IP. Веб-сервер получает запрос, обнаруживает файл, посылает его браузеру, а затем разрывает соединение. Графическая информация, которая имеется на странице, обрабатывается таким же образом. Далее настает очередь веб-браузера – вывести на монитор пользователя загруженный из сети HTML-документ.

Кроме HTML-страниц и графики, веб-серверы могут хранить любые файлы, в том числе текстовые документы, документы текстовых процессоров, видеофайлы и аудиоинформацию. На сегодняшний день, если не учитывать анкет, которые заполняют пользователи, основная часть веб-трафика передается в одном направлении – браузеры считывают файлы с веб-сервера. Но это положение изменится после общего принятия описанного в проекте HTTP 1.1 метода PUT, который позволяет записывать файлы на веб-сервер. Сегодня метод PUT используется в основном пользователями, создающими веб-страницы, но в перспективе он может пригодиться и остальным пользователям для обратной связи с информационными центрами. Запросы методом PUT намного проще, чем обыкновенная POST загрузка файлов на веб-сервер.

На веб-сервере также выполняют свою работу различные приложения, наибольшую популярность среди которых получили поисковики и средства связи с базами данных. Для разработки этих приложений применяются такие стандарты, как общий шлюзовой интерфейс (CommonGatewayInterface, CGI), языки сценариев JavaScript, а также языки программирования Java и VisualBasic. Кроме интерфейса стандарта CGI, некоторые фирмы-разработчики веб-серверов создали интерфейсы прикладного программирования (API) такие как, например, Netscape Server API и Internet Server API, которые созданы компаниями Microsoft и Process Software AG. Эти интерфейсы позволяют разработчикам непосредственно обращаться к конкретным функциям веб-сервера. Некоторые веб-серверы обладают связующим программным обеспечением (middleware) для подключения к базам данных, работа с которыми может потребовать профессиональных знаний в программировании.

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

Обзор веб-серверов

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

Большинство веб-серверов инсталлируется легко и быстро.

Самая сложная часть процесса инсталляции – это проведение конфигурации нескольких имен доменов на одном физическом устройстве или другими словами организация виртуальных серверов.

Веб-серверы имеют средства для управления информационным модулем, характеризующие общую организацию веб-узла, а также обладают инструментами для проверки правильности внутренних и внешних гипертекстовых связей. Пакет LiveWire фирмы Netscape Communications, который поставляется вместе с Novell Open Enterprise Server (OES) и дополнительно предлагаемый с сервером FastTrack, обладает утилитой управления узлом, которая формирует список всех связей выбранной страницы. Эта утилита также предоставляет общий перечень всех некорректных связей, которые обнаруживает. Программа WebView компании «O"Reilly & Associates» обладает такой же функцией и может выводить на экран подробное дерево файлов, в котором все некорректные связи выделяются красным цветом.

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

С увеличением популярности веб-серверов и все более широкого их применения в интрасетях, усиливается коммерческая активность в Интернете, поэтому возрастает важность защиты информации. Чаще всего системы обеспечения безопасности веб-сервера оказываются или избыточными, или недостаточными для современных интрасетей. Если необходимо ограничить доступ к определенной информации внутри компании, то есть выбор между использованием незашифрованных паролей, которые передаются по каналам связи, и применением протокола SSL (англ. Secure Sockets Layer – уровень защищенных сокетов) – сложного и медленного метода, который используется для шифровки паролей и данных.

Для того чтобы организовать работу отдельных пользователей и их групп могут быть использованы внутренние приложения сервера или определенные функции операционной системы. Для того чтобы организовать работу отдельных пользователей и их групп могут быть использованы внутренние приложения сервера или определенные функции операционной системы. В пакетной службе Microsoft IIS предусмотрено применение средств базовой сетевой ОС Windows NT.

Пакет NetWare Web Server фирмы Novell, Inc. целиком интегрирован со службами адресных каталогов (NetWare Directory Services, NDS). Налаживать работу пользователей из общего центра удобно, но это может нести угрозу безопасности. Пароли распространяются по каналам связи в незашифрованном виде, и если их перехватят, то подвергнется риску не только веб-сервер, но и безопасность всей сетевой операционной системы.

Разработка приложений – это одна из основных функций веб-сервера. Среда разработки приложений и инструменты подключения к базам данных очень важны для расширения возможности веб-сервера, поскольку разработка приложений зависит от различных своеобразных деталей интерфейса прикладного программирования (англ. application programming interface, API), а также от особенностей языков программирования или индивидуальных предпочтений программистов.

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

Для малых корпоративных интрасетей лучше всего подойдет пакет Internet Information Server (IIS), созданный и распространяемый компанией Microsoft. IIS отличается достаточно простой инсталляцией и простыми настройками конфигурации. Этот пакет веб-сервера отлично интегрирован со средствами управления доступом, инструментом контроля параметров системы Performance Monitor (Системный монитор), а также с программой просмотра журнала событий Event Viewer. Еще веб-сервером IIS представляется несколько инструментов для динамической передачи информации из баз данных. IIS отличается очень высоким быстродействием. Компоненты IIS поддерживают такие протоколы, как: HTTP, HTTPS, FTP, NNTP, SMTP, POP3.

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

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

Самые распространенные веб-серверы: Apache (компания Apache Software Foundation), IIS (компания Microsoft) и iPlanet server (от компаний Sun Microsystems и Netscape Communications Corporation). Сейчас на рынке программного обеспечения для веб-серверов, существует огромный выбор продуктов, как коммерческих, так и бесплатных.

Одним из самых распространенных веб-серверов, является Apache от компании Apache Software Foundation. По ориентировочным подсчетам, он используется на 65% всех веб-серверов в мире. Одно из основных достоинств программного обеспечения Apache – бесплатное распространение. Разработчики регулярно устраняют найденные ошибки и предоставляют хорошую поддержку пользователей. Данный веб-сервер поддерживает большое количество модулей, утилит и дополнений. Поскольку с самого начала Apache разрабатывался как программное обеспечение для администраторов и опытных пользователей, то есть недостаток – сложность настройки и обслуживания для неопытных вебмастеров.

Далее по популярности идет веб-сервер IIS от компании Microsoft. По данным компании Netcraft веб-сервер IIS составляет 12,46% от общего числа веб-серверов. Этот продукт входит в состав серверного программного обеспечения семейства Windows NT. Его основные преимущества – стабильность, высокая скорость работы, возможность подключения дополнительных модулей. Компания Microsoft стремится к тому, чтобы любой пользователь смог пользоваться ее продуктами без помощи специалистов, если ему нужно решить стандартные задачи. Поэтому система IIS очень проста в установке, настройке и обслуживании. Веб-сервер поддерживает технологию.NET, набирающую, в последнее время, популярность в среде разработчиков и профессиональных пользователей. Эти достоинства выводят веб-сервер IIS на новый уровень и можно ожидать, что его использование возрастет.

Другие известные веб-серверы:

  • nginx - свободный веб-сервер и почтовый прокси-сервер, разрабатываемый Игорем Сысоевым. Простой, быстрый и надежный сервер. Работает в Linux и других Unix-подобных операционных системах, а также в Windows. Пользуется популярностью на крупных веб-сайтах;
  • lighttpd - свободный веб-сервер. Разработчик Ян Кнешке. Быстрый и безопасный веб-сервер. Работает в Linux и других Unix-подобных операционных системах, а также в Windows;
  • Google Web Server - веб-сервер, который основан на Apache и используется компанией Google для организации своей веб-инфраструктуры;
  • Resin - свободный веб-сервер и сервер приложений для Java. Разработчик – компания Caucho Technology Inc.;
  • Cherokee - свободный веб-сервер, который управляется только через веб-интерфейс. Написан на языке программирования Си;
  • Rootage - веб-сервер, который написан на языке программирования Java. Работает в Linux и Windows;
  • THTTPD - простой, маленький, быстрый и безопасный веб-сервер. Разработчик компания ACME Labs Software.

Клиенты веб-сервера

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

  • Веб-браузер, который установлен на стационарном персональном компьютере;
  • Веб-браузер, который установлен на КПК или другом переносном устройстве;
  • Мобильные телефоны и смартфоны, с помощью которых пользователь получает доступ к ресурсам веб-сервера по WAP-протоколу;
  • Различные программы, которые могут обращаться к веб-серверу самостоятельно для обновления либо получения другой информации. Пример – различные антивирусы, которые периодически обращаются к веб-серверу, чтобы обновить базу данных;
  • Разные цифровые устройства, а также некоторая бытовая техника.

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

Даже те, кто пока только мечтают о тысячах пользователей на своём сайте, наверняка задавались вопросом: “А сколько же пользователей мой сайт выдержит, если они зайдут одновременно?” Сразу вспоминается известное выражение “Хабраэффект” – явление отказа сайта, который оказался не готов к многочисленным переходам на него после появления в интернете ссылки.

Предположим, что сайт уже есть (или скоро будет): где же его разместить? Это должен быть классический хостинг или vps-сервер? Если vps, то какой и как его лучше настроить? А может быть вообще нет никакой разницы и проще выбрать то, что подешевле? В этой статье мы рассмотрим несколько вариантов и на практике убедимся, какой из них подойдёт лучше для нашего сайта.

Будем экспериментировать: ставить разные режимы работы сервера и замерять производительность. Нагрузку на сайт будем имитировать с помощью сервиса Loaddy.com. Там можно задать количество пользователей, нарастающий тип нагрузки и по графику будет видно, как сервер реагирует на них. Считается, что один пользователь генерирует примерно один запрос к сайту в течение 10 секунд. В качестве испытуемого сайта возьмем демонстрационный интернет-магазин на cms moguta. Он будет заполнен тестовыми «товарами», которые выводятся на главную страницу по нескольким критериям (то есть при формировании страницы идет работа с базой данных и т.п.). Так или иначе, это позволит сравнивать режимы между собой.

В качестве тестовой площадки создадим впс-сервер на ос Ubuntu. Конфигурация его будет . Будем считать, что именно такие серверы начального уровня создают в большинстве случаев для новых проектов. Тестовая версия интернет-магазина будет доступна по ip адресу http://130.193.44.219/

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

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

  • Apache;
  • Apache в режиме CGI;
  • Nginx + php-fpm (без Апача).
Но сначала проведем испытания на хостинге:

Классический недорогой хостинг

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

Ваш сайт подвергался ограничениям в течение последних 24 часов. Ресурсы процессора ограничивались для Вашего сайта. Вы достигали пределов по входным процессам (количеству одновременно запущенных PHP и CGI скриптов, заданий по расписанию и консольных сессий) 126 раз.
Что ж, понятно, хостинг есть хостинг, тем более недорогой. Можно, конечно, найти такой тариф, который будет предоставлять больше возможностей, но это всё нужно учитывать, каким-то образом узнавать точные данные ограничений, причем у каждого хостинг-провайдера.

VPS: Apache

Следующий на очереди – наш тестовый впс с режимом апач, который кстати предлагается по умолчанию, при установке панели управления ISP.

Проблемы начинаются, когда число пользователей переваливает за 90. Если мы зайдем на наш сервер по ssh и посмотрим в этот момент на список процессов по команде top, отсортированный с помощью Shift+M (по количеству потребляемой памяти), то увидим примерно такую картину:

Мы видим, что процесс apache2 разросся на много дочерних и они съели всю оперативку нашего vps сервера.

Здесь нужно сделать небольшую ремарку. Дело в том, что для сервера апач теоретически существует режим, который позволяет вместо этого большого числа дочерних процессов для каждого соединения создать несколько так называемых мультитредовых, каждый из которых обслуживал бы по нескольку соединений. Называется этот режим worker , в отличие от дефолтного prefork . Но установить его непросто, в панелях типа ISP это сделать невозможно, а если озадачиться и попытаться это осуществить через ssh, то выяснится, что для этого мало выключить prefork и включить worker, еще нужна тредобезопасная версия php. А если используются модули типа Zend или IonCube, то они тоже должны быть тредобезопасными. Да и вообще, официальный сайт PHP не рекомендует устанавливать этот режим.

VPS: CGI

Давайте посмотрим, что будет при использовании режима CGI. Для этого нужно в панели управления ISP разрешить использовать PHP в режиме CGI, это делается в разделе «Учетные записи – пользователи – настройки для пользователя».

Безрадостная картина получилась. Сервер отказывается выдавать контент уже при 55+ посетителях, оперативная память вся съедена процессами “php”. Далее идёт попытка восстановления работоспособности, но всё равно всё оканчивается практически 100% отказами.

VPS: Nginx + PHP-FPM

Настало время режима, в котором сервер Apache не используется вовсе, вместо него работает Nginx, а php обрабатывается модулем php-fpm. Если вы используете панель управления ISP, то необходимо разрешить этот режим для пользователя. Это также делается в разделе «Учетные записи – пользователи – настройки для пользователя». Также этот режим должен быть доступен в разделе «Настройки – Возможности – Веб-сервер(www)».

То, что нужно! 100% доступности, при этом скорость загрузки и время ответа сервера находятся на приемлемых уровнях, хоть и возрастают с ростом нагрузки. Тем не менее сервер справляется!

Посмотрим на таблицу процессов в момент максимальной нагрузки на сервер:

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

Что ж, похоже «режим-победитель» определен. Давайте выясним, сколько же одновременных посетителей сможет обслужить наш сервер в таком режиме. Но перед этим сделаем небольшой «тюнинг». Во-первых, так как apache не используется при такой работе сервера, его можно вовсе отключить. Это сделаем в панели управления ISP в разделе «Система – Службы». Во-вторых, изменим немного принцип запуска процессов php-fpm. По умолчанию он динамический. Это значит, что дочерние процессы будут висеть в памяти даже когда они не нужны. При этом память не освобождается и со временем эти процессы могут разрастись больше чем нам бы хотелось. Поэтому предлагается установить режим “ondemand” – по требованию. И задать количество дочерних процессов и время таймаута для них.

Для этого нужно будет зайти на сервер по ssh и прописать эти настройки в конфигурационный файл php. Это удобно сделать в файле для пользователя, для которого был создан домен в ISP.

Обычно он находится в /etc/php/7.0/fpm/pool.d

Итак: sudo nano /etc/php/7.0/fpm/pool.d/www-root.conf

Видим там по умолчанию такие настройки:

Pm = dynamic pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_children = 5 pm.max_spare_servers = 5
Чтобы заработал режим ondemand, нужно заменить это на:
pm = ondemand pm.max_children = 5 pm.process_idle_timeout = 10s
И перезапустить php-fpm командой

Sudo service php7.0-fpm restart
После этого процессы php-fpm7.0 будут создаваться по требованию (при наличии нагрузки), максимальное их количество будет =5, а после 10 секунд простоя процесс будет убиваться, освобождая оперативную память.

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

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

Радует то, что все запросы были обработаны, пусть и с большой задержкой, при большом их количестве в секунду. Время ответа сервера приближается к 10 секундам при количестве обращений 190+ Но давайте вспомним график режима apache, где 4 секунды ответа сервера мы получили уже при 80+ пользователях, тогда как в режиме php-fpm аналогичные лаги наблюдаются при 130 запросах, которые мы специально выделили курсором на графике выше.
А ведь это тот же самый VPS.

Таблица процессов top в конце испытания (при 200 пользователях):

Заметим, что после окончания тестирования, память, используемая pfp-fpm освободилась:

А значит наш сервер готов к новым нагрузкам.

Необходимо помнить, что сайт работает в режиме nginx+php-fpm, это означает что в работе не используется apache2 и как следствие – не используется.htaccess. Это может казаться не удобным, но это самый быстрый из возможных вариантов, а поисковики лучше ранжируют сайты, которые работают быстро.

Заключение

В завершении еще один небольшой момент: Если вы настроили на сервере всё что хотели и решили отключить панель управления ISP, или у вас кончилась на неё лицензия, учтите, что процесс “core” от неё так и останется висеть у вас на сервере. По прошествии месяцев он может разрастись, так что лучше его “убить” и удалить из автозапуска и crona.

Если хотите самостоятельно протестировать сайт с помощью Loaddy или же другими методами, он доступен по адресу

Веб-хостинговая индустрия,требует,по крайней мере,некоторых базовых знаний для работы.Есть несколько терминов веб-хостинга,и каждый веб-мастер должен быть в курсе.Одним из самых основных из них является: веб-сервер .На самом деле,веб-хостинг построен из web-серверов, предоставляющих место для вашего веб-сайта. Сервер HP Micro AMD N40L - это универсальный сервер, который может обеспечить платформу для организации и защиты бизнес-информации, обеспечить эффективное общение с клиентами и сделать большую часть для вашего существующего офисного оборудования и ресурсов. HP MicroServer является экономически эффективным стартовым сервером для предприятий с менее 10 клиентами, и это может вывести ваш бизнес на новый уровень производительности и эффективности.Чтобы узнать больше о сервере HP Micro AMD N40L,пройдите по этой ссылке http://vint.com.ua/product/computers/dir_3010558/dir_3010559 .

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

Оборудование веб-сервера

Веб-сайт-это коллекция веб-страниц которые представляют собой цифровые файлы, которые обычно написаны с использованием языка разметки гипертекста HTML. Веб-сайт будет доступен всему миру всё время,для этого он должен быть сохранён или на хостинге или на компьютере, подключенном к Интернету в режиме 24/7/365. Такой компьютер называется Веб-Сервер (обратите внимание на первые буквы в верхнем регистре).

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

Существует ряд требований для сервера компьютера - он должен быть достаточно быстрым, иметь большой объём оперативной памяти и жесткий диск с большим объёмом.Но наиболее важно иметь постоянный адрес в Интернет, также известный как IP - адрес Интернет-протокола. Если IP адрес веб-сайта не будет найден и он будет работать в автономном режиме - браузер будет отображать ошибку не удается найти веб-сайт .

Программы и программное обеспечение web-сервера

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

Есть много веб-серверных программ. Самой известной и популярной из них является Apache ,разработанная Apache Foundation.Apache не только бесплатная,но она также доступна для нескольких операционных систем,включая Windows,Macintosh и Linux/Unix.

Хотя термины 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. Это платформа, предназначенная для установки, работы и размещения приложений и сервисов для конечных пользователей. Хотя оба они необходимы для правильного функционирования веб-сайта, они сильно отличаются друг от друга.


Top