Вы находитесь на странице: 1из 25

Кафедра ИППО

Разработка клиент-серверных приложений


Лекция 5

Для курса 3 групп потока ИКБО-16

По направлению подготовки 09.03.04


Программная инженерия

Москва, 2018
Кафедра ИППО

Содержание:

1 Понятие веб-сервера…………………..3
2 Обзор лучших веб-серверов…………11
2.1 Apache HTTP Server………………...13
2.2 Microsoft IIS………………………...16
2.3 NGINX………………………………18
2.4 Lighttpd……………………………...21
Лекция 6. Веб-серверы

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

3
Лекция 6. Веб-серверы

В качестве клиентов для обращения к веб-серверам могут


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

4
Лекция 6. Веб-серверы

Ресурсы — это HTML-страницы, изображения, файлы, медиа-потоки


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

5
Лекция 6. Веб-серверы

Задачи веб-сервера
Главная задача веб-сервера – хранение информации (страницы, файлы,
изображения, текстовый контент).
Дополнительные функции веб-сервера:
автоматизация работы веб-страниц;
ведение журнала обращений пользователей к ресурсам;
аутентификация и авторизация пользователей;
поддержка динамически генерируемых страниц;
поддержка HTTPS для защищённых соединений с клиентами.
Часто на компьютере вместе с веб-сервером устанавливается также и
почтовый сервер.

6
Лекция 6. Веб-серверы

Чтобы понять, как работает веб-сервер, надо иметь представление о


принципах передачи информации в сети.
В основе лежат правила, называемые протоколами: любой URL
начинается с указания типа (ftp, http://, https:// и пр.).
Hyper Text Transfer Protocol – протокол передачи гипертекста.
Страницы сайта всегда имеют вид гипертекстового документа. Это конечный
результат работы любой серверной или клиентской программы.

7
Лекция 6. Веб-серверы

Когда пользователь вводит адрес или нажимает ссылку, браузер


передает запрос, кодируя информацию по этим правилам.
Хост, к которому привязан этот адрес, запускает программы сервера.
Каждая из них выполняет свои функции.
Полученные данные расшифровываются, команды выполняются.
Формируется гипертекст, кодируется и отправляется обратно.
Браузер получает ответ, преобразовывает код в html и показывает на
экране страницу.

8
Лекция 6. Веб-серверы

Что нужно для веб-сервера


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

9
Лекция 6. Веб-серверы

Когда решен вопрос с сервером, надо привязать к нему статический IP-


адрес.
Сайт становится доступен на веб-сервере после того, как
зарегистрировано доменное имя, выполнено преобразование адресов службой
DNS — связывание IP-адреса (например, 111.111.111.111) и доменного имени
(www.site.com).

10
Лекция 6. Веб-серверы

2 Обзор лучших веб-серверов


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

UNIX-подобных операционных системах;


IIS от компании Microsoft, распространяемый с ОС семейства

Windows;
NGINX — свободный веб-сервер, разрабатываемый Игорем
Сысоевым с 2002 года и пользующийся большой популярностью на
крупных сайтах;
lighttpd — свободный веб-сервер;

11
Лекция 6. Веб-серверы

Google Web Server — веб-сервер, основанный на Apache и

доработанный компанией Google;


Resin — свободный веб-сервер приложений;

Cherokee — свободный веб-сервер, управляемый только через web-

интерфейс;
Rootage — веб-сервер, написанный на Java;
THTTPD — простой, маленький, быстрый и безопасный веб-сервер;

Open Server — бесплатная программа с графическим интерфейсом

использует множество исключительно свободного программного


комплекса.
Рассмотрим некоторые из них.

12
Лекция 6. Веб-серверы

2.1 Apache HTTP Server


Apache (сайт apache.org) — это самый распространенный и
популярный бесплатный сервер в сети.
Преимущества Apache:
надёжность и гибкость конфигурации;

возможность подключения внешних модулей для предоставления

данных,
использование СУБД для аутентификации пользователей,

модификация сообщений об ошибках;

поддержка IPv6 (Internet Protocol version 6);

13
Лекция 6. Веб-серверы

сервер не требователен к ресурсам процессора и способен


обслуживать множество сайтов;
постоянная поддержка разработчиков;

модули для работы с серверными языками программирования PHP,

Perl, Python, Ruby, ASP и т.д.;


открытый код. Доработкой под свои нужды занимаются разные

программисты. Например, русскоязычное сообщество адаптирует его к


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

поддерживается Windows, Mac OS, BSD, Linux, OS/2 и Novell NetWare;


безопасность.

14
Лекция 6. Веб-серверы

На данный момент использование Apache составляет 71 %.


Однако, это сложная программа, с которой не каждый новичок сможет
справится.
Инструкцию по установке Apache можно посмотреть здесь:
http://www.internet-technologies.ru/articles/apache-ustanovka-i-nastroyka-
veb-servera.html
http://www.myfirstsite.ru/lessons/web-server-installing

15
Лекция 6. Веб-серверы

2.2 Microsoft IIS


IIS (Internet Information Services) (сайт www.iis.net) —
проприетарный набор серверов для нескольких служб Интернета от компании
Microsoft. IIS распространяется с операционными системами семейства
Windows NT.
Основным компонентом IIS является веб-сервер, который позволяет
размещать в Интернете сайты.
IIS поддерживает протоколы HTTP, HTTPS, FTP, POP3, SMTP, NNTP.
По данным компании Netcraft на июнь 2015 года, почти 22 млн сайтов
обслуживаются веб-сервером IIS, что составляет 12,32 % от общего числа
веб-сайтов.

16
Лекция 6. Веб-серверы

Родной платформой программирования является ASP.NET, но можно


внедрить и альтернативу, например, РНР.
Для полноценного хостинга требуется установка серверной
операционной системы от Microsoft – Windows Server. 6-я версия вообще не
была предназначена для хостинга, полноценная поддержка началась в 7-й.
Приобретается он автоматически вместе с операционной системой и зависит
от ее характеристик.
После установки программы, будут поддерживаться только два языка
программирования (VBScript и JScript). Однако, можно открыть
дополнительные возможности, установив для этого нужные расширения. С
установкой таких модулей, функциональность данного сервера значительно
повышается.

17
Лекция 6. Веб-серверы

2.3 NGINX
NGINX (сайт nginx.org/ru/) (Engine x, англ.) — веб-сервер и почтовый
прокси-сервер, работающий на Unix-подобных операционных системах
(тестировалась сборка и работа на FreeBSD, OpenBSD, Linux, Solaris, Mac OS
X, AIX и HP-UX). Начиная с версии 0.7.52 появилась экспериментальная
бинарная сборка под Microsoft Windows.
Игорь Сысоев начал разработку в 2002 году. Осенью 2004 года вышел
первый публично доступный релиз. С июля 2011 работа над nginx
продолжается в рамках компании Nginx.

18
Лекция 6. Веб-серверы

NGINX — самый популярный веб-сервер в России с долей рынка


65,90%. По сравнению с двумя первыми, он является наиболее простым и не
обладает лишними функциями. Также его хвалят за надежность и высокую
скорость работы.
Применение nginx целесообразно прежде всего для статических веб-
сайтов и как прокси-сервера перед динамическими сайтами.
По данным Netcraft на февраль 2018 года, число сайтов,
обслуживаемых nginx, превышает 447 миллионов, что делает его третьим по
популярности веб-сервером в мире. Доля среди активных сайтов — 21,13 %,
что ставит nginx на второе место после веб-сервера Apache.

19
Лекция 6. Веб-серверы

По данным W3Techs, nginx наиболее часто используется на


высоконагруженных сайтах, занимая первое место по частоте использования
среди 100 000 самых посещаемых сайтов в мире — больше половины из них
работает на nginx.
По данным российского регистратора REG.RU, nginx является самым
популярным веб-сервером доменных зон .ru, .рф и .su, обслуживая более
половины каждого сегмента.
Среди известных проектов, использующих nginx: Рамблер, Яндекс,
Mail.ru, Хабрахабр, Живой Журнал, Avito.ru, Badoo, Ukr.net, Begun,
Wordpress.com, SourceForge.net, ВКонтакте, Qiwi.com, Facebook, Groupon,
Rutracker.org, Netflix, Instagram, HeadHunter, 2ГИС и многие другие.

20
Лекция 6. Веб-серверы

2.4 Lighttpd
lighttpd (также «lighty», «лайти») — веб-сервер, разрабатываемый с
расчётом на скорость и защищённость, а также соответствие стандартам. Это
свободное программное обеспечение, распространяемое по лицензии BSD
(англ. BSD license, Berkeley Software Distribution license — Программная
лицензия университета Беркли) — это лицензионное соглашение, впервые
применённое для распространения Unix-подобных операционных систем
BSD).
lighttpd работает в Linux и других Unix-подобных операционных
системах, а также в Microsoft Windows.

21
Лекция 6. Веб-серверы

В lighttpd есть поддержка:


автоматической балансировки нагрузки (поддерживаются FastCGI,

SCGI, HTTP proxy);


сhroot (операция изменения корневого каталога в Unix-подобных

операционных системах);
сжатия отдаваемого содержимого «на лету»;
HTTP-аутентификации;

аутентификации через LDAP-сервер;

перезаписи URL;

SSL и TLS через OpenSSL;

установки собственных страниц ошибок.

22
Лекция 6. Веб-серверы

Веб-сервер lighttpd также поддерживает интерфейсы CGI, SCGI,


FastCGI и AJP (только в разрабатываемой сейчас версии 1.5), позволяя
использовать приложения, написанные на любых языках программирования.
lighttpd использует так называемую асинхронную обработку сетевых
соединений. Благодаря этому загруженность сервера (в отличие от Apache)
при доступе к файлам на диске не зависит от количества текущих
соединений.

23
Лекция 6. Веб-серверы

В lighttpd возможно использование особых системных вызовов для


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

24
Лекция 6. Веб-серверы

Использование lighttpd:
Яндекс — использует lighttpd в некоторых своих проектах: Карты,

Маркет;
Google — в своих проектах, в частности s.ytimg.com, который отдает

все картинки для youtube.com, в том числе все превью для видео (в трех
разрешениях) — использует lighttpd-yt (модификация от Google);
Википедия — использует lighttpd как кэширующий прокси-сервер

(для отдачи статического содержимого);


Ubuntu — использует lighttpd на некоторых серверах обновлений.

25