Nginx (engine X)
Автором Web-сервераnginxявляется Игорь Сысоев. Первая версия сервера вышла осенью 2004 года. Данный сервер специально разрабатывался как решение для испытывающих большую нагрузкуWeb-серверов. В отличие отApache, он использует другую идеологию, а именно: идеологию событий. Поступивший от клиента запрос не передается напрямуюworker'у, а вызывает событие, доходящее до свободного в данный моментworker'а через очередь событий. При этом каждыйworkerобслуживает одновременно несколько соединений, переключаясь между ними с помощью вызовов функций операционной системы. Точно так же и в обратную сторону: сервер не будет ждать, покаworkerотработает запрос. Как толькоworkerбудет готов - он "сообщит" об этом серверному процессу, тот заберет данные и передаст их клиенту. В результате распределение нагрузки получается более оптимальным. Соответственно, на одной и той же аппаратной платформеnginxможет обработать большее число запросов, чемApache.
Nginxимеет очень гибкое конфигурирование распределения нагрузки между несколькими серверами. Не просто виртуальный хост, но и часть виртуального хоста может быть выделена в отдельный компьютер либо несколько компьютеров. Таким образом,nginxпозволяет проводить масштабирование проекта, практически не прерывая его работоспособности.
В угоду производительности nginxтеряет некоторый функционал. Он не является полноценной заменойApache, это по своей сути разные продукты, пересекающиеся лишь частично. Сфера примененияnginx- это статический контент и проксирование перед некоторым процессом, который формирует динамические страницы. В качестве этого "некоторого" процесса может, в том числе, выступать иApache. То есть возможна совместная работа серверов:nginxпринимает запрос от пользователей и выдает им ответ. При этом если ответ статический, тоnginx"справляется" самостоятельно. Если же для выдачи ответа необходимо породить процесс формирования страницы, то эту задачуnginxможет "делегировать" серверуapache. Разумеется, применениеapache- не единственный вариант формирования динамического контента, это может делать и приложение, написанное на любом языке программирования.
Можно утверждать, что с почти 100% вероятностью все крупные существующие в интернете проекты имеют nginxв качестве "основного"Web-сервера (fron-end). А вот в качествеback-end'а, формирующего динамический контент, выбор технологий для разработчика довольно широк и некоего общепринятого решения здесь не существует.
-
Содержание
- Оглавление
- Введение.
- Предмет рассмотрения данного курса.
- Одно-, двух- и многоуровневые приложения.
- Интернет.
- Адрес в интернете
- 2001:0Db8:11a3:09d7:1f34:8a2e:07a0:765d
- Имя в интернете
- Службы (сервисы)
- Сокета.
- Что такое "сокета" (socket) ?
- Создание серверной сокеты (пример на языке c).
- Сериализация
- Основы верстки: таблицы
- Основы верстки: фреймы
- Основы верстки: позиционирование участков сайта
- Протокол http
- Структура запроса (Request).
- Структура ответа (Response).
- Перспективы развития http.
- Интернет-приложения
- Web-приложения
- Web-сервисы
- Особенности проектирования
- Особенности пользовательского интерфейса
- Программирование интернет-приложений
- Объектно-ориентированное программирование
- Классы и объекты
- Жизненный цикл класса
- Статические члены класса
- Инкапсуляция
- Наследование
- Полиморфизм
- Интерфейсы
- Событийно-ориентированное программирование
- Совместная работа над проектом
- Технологии создания web-клиентов
- Dom (Document Object Model)
- Каскадные таблицы стилей
- JavaScript
- Обфускация и динамическое получение скриптов
- Java Applets
- ActiveX/npapi
- Adobe Flash
- Web-серверы
- Nginx (engine X)
- Технологии, применяемые на стороне сервера
- ИнтерфейсCgi
- КонцепцияMvc
- Сервлеты
- JavaScript
- Хранение данных