Что такое nginx простыми словами

Видео: основы NGINX для начинающих за 200 секунд

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

Подробности — в видео и текстовой расшифровке ниже.

Как устроен NGINX

NGINX построен на базе неблокирующей событийно-ориентированной архитектуры. У него есть один мастер-процесс, несколько воркер-процессов и два процесса, управляющих кэшем. Чтобы это увидеть, достаточно выполнить команду ps с ключами:

Мастер-процесс запускается от суперпользователя и выполняет операции, требующие повышения прав, такие как:

Воркер-процессы выполняют всю работу:

Обычно количество воркер-процессов равняется количеству ядер CPU. Это позволяет использовать системные ресурсы максимально эффективно.

Воркер-процессы слушают два вида сокетов:

Воркер-процесс ожидает событие, используя методы epoll или kqueue API операционной системы. Получив событие нового клиента на listener-сокете, воркер-процесс создаёт новый connection-сокет. Получив событие на connection-сокете, воркер-процесс обрабатывает этот запрос. После обработки события он не блокируется, а переходит в режим ожидания. Это позволяет минимизировать количество переключений контекстов операционной системы.

27–29 декабря, Онлайн, Беcплатно

Другие два процесса управляют содержимым кэша на жестком диске:

При такой архитектуре для обновления конфигурации NGINX достаточно отправить мастер-процессу сигнал SIGHUP. Далее мастер-процесс создаст новые воркер-процессы с обновлённой конфигурацией и оповестит старые воркер-процессы о завершении работы. После этого воркер-процессы перестанут принимать новые соединения, а текущие соединения, обработав событие, будут закрываться (без ожидания keep-alive). Как только будут закрыты все соединения, воркер-процесс завершится. Это позволяет обновлять конфигурацию сервера без потери соединений, простоя ресурсов и прерывания обслуживания клиентов.

При правильно настроенном NGINX каждый воркер-процесс способен обработать сотни тысяч cоединений одновременно.

Основы конфигурации NGINX

Общий конфигурационный файл NGINX выглядит следующим образом:

Все настройки называются директивами и представляют собой пары key-value. Директива с фигурными скобками называется контекстом. Вот список основных контекстов:

Например, клиент делает запрос по URL http://www.example.com/blog. Протокол и доменное имя определяют, какой контекст server будет выбран, а идентификатор запроса (URI) определяет, какой контекст location будет использован.

Что такое nginx простыми словами. Смотреть фото Что такое nginx простыми словами. Смотреть картинку Что такое nginx простыми словами. Картинка про Что такое nginx простыми словами. Фото Что такое nginx простыми словами

Конфигурации для разных случаев использования

NGINX обычно используется в трёх случаях:

Начнём с конфигурации для отдачи статики. Создаём контекст server, указываем, какой порт слушать, задаём имя сервера и описываем три контекста location. Первый контекст — на все ресурсы, второй и третий контексты определяют директорию поиска файлов в зависимости от их расширения.

Чтобы сделать reverse proxy, создаём такой же контекст server. В нём создаём один контекст location, в котором указываем директиву proxy_pass и URL, куда проксировать запросы. Теперь NGINX будет проксировать все запросы на указанный URL.

Добавим балансировку в конфигурацию reverse proxy. Внутри контекста http создаём контекст upstream и указываем адреса наших приложений. Внутри контекста location указываем директиву proxy_pass со значением имени контекста upstream. Теперь NGINX будет распределять запросы по двум серверам.

Стратегия балансировки по умолчанию является round-robin — равномерным распределением. Можно указать стратегию least_conn, при которой NGINX будет отправлять запросы серверу, у которого меньше активных подключений. Это полезно, если серверы не одинаковые по своей мощности.

Источник

Что такое Nginx

В этой статье мы расскажем, что такое Nginx, как он работает, какие у него плюсы и минусы.

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

Что такое nginx простыми словами. Смотреть фото Что такое nginx простыми словами. Смотреть картинку Что такое nginx простыми словами. Картинка про Что такое nginx простыми словами. Фото Что такое nginx простыми словами

Для начала разбёрем, что такое веб-сервер. Веб-сервер — это программное обеспечение, основная задача которого — обработка входящих и исходящих запросов на различных протоколах передачи данных. Рассмотрим этот процесс на примере веб-сайтов. После того как вы ввели URL-адрес сайта в адресной строке, браузер обращается к веб-серверу путём передачи запроса по протоколу HTTP. Веб-сервер выполняет некий набор инструкций, указанный в конфигах, и возвращает по HTTP ответ, например со статическими страницами сайта или данными для редиректа. Таким образом, веб-сервер ― это связующее звено между браузером и сервером. Зачем нужен Nginx?

Nginx работает почти на всех Linux и Unix подобных системах, а также на некоторых версиях Windows.

Как работает Nginx

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

По такому принципу работает, например, веб-сервер Apache.

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

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

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

Что такое nginx простыми словами. Смотреть фото Что такое nginx простыми словами. Смотреть картинку Что такое nginx простыми словами. Картинка про Что такое nginx простыми словами. Фото Что такое nginx простыми словами

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

Источник

Что такое Nginx

Читайте нашу статью, если хотите узнать, что такое Nginx, зачем он нужен и как работает эта технология.

Nginx: введение

Nginx — это площадка с открытым исходным кодом, с помощью которой можно создать свой веб-сервер. Но что такое веб-сервер и сервер вообще?

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

Допустим, пользователь хочет зайти на сайт хостинг-провайдера и вводит в браузере “2domains”. В этот момент браузер подает сигнал веб-серверу. Веб-сервер принимает запрос и связывается с сервером, на котором хранятся файлы сайта 2domains.ru. Сервер собирает нужные данные и передает их веб-серверу, а веб-сервер — браузеру. Браузер принимает данные и отображает пользователю внешнюю часть сайта. Таким образом, веб-сервер связывает браузер и сервер, чтобы пользователи могли получить нужную им информацию.

Что такое nginx простыми словами. Смотреть фото Что такое nginx простыми словами. Смотреть картинку Что такое nginx простыми словами. Картинка про Что такое nginx простыми словами. Фото Что такое nginx простыми словами

Стоит понимать, что в браузер одномоментно поступает около десятка тысяч запросов. Чтобы справиться с таким потоком, нужны огромные ресурсы и мощности. С помощью технологий Nginx можно создать мощный веб-сервер, почтовый сервер типа SMTP/IMAP/POP3, обратный прокси-сервер или сервер приложений.

грамотно распределяет поступающие на сервер нагрузки;

конфигурирует тысячи соединений одновременно;

аутентифицирует пользователей (по типу “логин”-”пароль”);

позволяет делать масштабирование.

Иногда Nginx используют вместо веб-сервера Apache. Несмотря на то, что нередко их приравнивают друг к другу, можно сказать однозначно — Nginx потребляет меньше ресурсов и работает быстрее. А администрирование Nginx — более простой процесс.

Принцип работы Nginx

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

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

С одной стороны — с помощью синхронного алгоритма можно детально проанализировать данные каждого отдельного этапа. С другой — в один момент система способна обрабатывать ограниченное количество данных.

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

Стоит отметить, что в асинхронной системе тоже периодически возникают блокировки. Так небольшой сбой на одном из этапов может заблокировать работу всего потока. Поэтому в версии Nginx 1.7.11 была внедрена специальная механика — пул потоков. Пул потоков позволяет выделять отдельные потоки для долго исполняемых операций. Общий поток и отдельный поток находятся в обработке параллельно, но не синхронно. К моменту, когда закончится обработка всех этапов общего потока, также закончится обработка и отдельного потока. Затем они синхронизируются между собой и сервер будет заниматься обработкой следующего запроса.

Итак, теперь вы знаете, что такое веб сервер Nginx, как он работает и какую технологию лучше использовать, чтобы создать надежный почтовый прокси сервер.

Источник

Что за Nginx, о котором сейчас все говорят

Что такое nginx простыми словами. Смотреть фото Что такое nginx простыми словами. Смотреть картинку Что такое nginx простыми словами. Картинка про Что такое nginx простыми словами. Фото Что такое nginx простыми словами

В сети набирает обороты скандал вокруг Rambler и Nginx.

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

Рассказываем по порядку, что это за компания, и в чем суть «разборок».

Что такое Nginx

Что такое nginx простыми словами. Смотреть фото Что такое nginx простыми словами. Смотреть картинку Что такое nginx простыми словами. Картинка про Что такое nginx простыми словами. Фото Что такое nginx простыми словами

Nginx — третий по популярности веб-сервер в мире и один из самый успешных российских IT-стартапов. Им пользуется более 447 млн сайтов по всей планете (это почти 40% всех сайтов в мире), включая Яндекс, Facebook, Instagram, Google, Netflix, Adobe, Cloudflare, WordPress.com и многие другие.

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

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

Что такое nginx простыми словами. Смотреть фото Что такое nginx простыми словами. Смотреть картинку Что такое nginx простыми словами. Картинка про Что такое nginx простыми словами. Фото Что такое nginx простыми словами
Примерная схема работы Nginx

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

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

В 2003 году Nginx стали использовать Звуки.ру, эстонский сайт знакомств Rate.ее и российский аналог Mamba. Год спустя на серверы компании перешёл сервис хранения фотографий от Рамблера.

Начал заниматься стартапом выходец из Rambler Group, программист Игорь Сысоев в 2002 году.

Кто такой Игорь Сысоев

Что такое nginx простыми словами. Смотреть фото Что такое nginx простыми словами. Смотреть картинку Что такое nginx простыми словами. Картинка про Что такое nginx простыми словами. Фото Что такое nginx простыми словами

Это непубличная личность, поэтому информации о нем не так много.

Игорь родился в 1970 году в Казахстане, провёл детство и школьные годы в Алма-Ате. После школы он отправился в Москву поступать в «Бауманку», но не сумел.

Вернувшись на родину, он устроился лаборантом в филиал Института повышения квалификации Министерства геологии СССР. Там на компьютерах «Искра-226» он учился программировать на Basic.

Позднее, в 1994 году, Сысоев всё-таки поступил в Университет им. Баумана и во время обучения написал небольшой антивирус AV. В 2000 году устроился на работу в Rambler.

Что такое nginx простыми словами. Смотреть фото Что такое nginx простыми словами. Смотреть картинку Что такое nginx простыми словами. Картинка про Что такое nginx простыми словами. Фото Что такое nginx простыми словами

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

В 2002 году из технического интереса решил написать более произоводительный сервер и выкладывать результаты в открытый доступ.

Уже с 2011 года Nginx начала приносить прибыль и захватывать индустрию

Что такое nginx простыми словами. Смотреть фото Что такое nginx простыми словами. Смотреть картинку Что такое nginx простыми словами. Картинка про Что такое nginx простыми словами. Фото Что такое nginx простыми словами

В 2004 году появилась первая рабочая версия Nginx, а в 2011 Сысоев вместе с партнёром Максимом Коноваловым основал собственный стартап Nginx Inc.

Что происходит прямо сейчас и какое отношение к этому имеет Rambler

Что такое nginx простыми словами. Смотреть фото Что такое nginx простыми словами. Смотреть картинку Что такое nginx простыми словами. Картинка про Что такое nginx простыми словами. Фото Что такое nginx простыми словами

4 декабря Rambler заявила о своих правах на Nginx и возбудила уголовное дело о нарушении авторских прав. А в офисах компании 12 декабря прошло несколько обысков.

Суть претензии в том, что Сысоев работал над сервисом, будучи сотрудником корпорации. При этом сам разработчик заявляет, что занимался веб-сервером в свободное от работы время.

Бывший исполнительный директор Rambler Group Игорь Ашманов подтвердил, что разработка ПО не входила в обязанности Сысоева, а у компании нет документов, которые могут подтвердить её позицию.

Rambler оценил ущерб в 51,4 млн рублей. Сейчас дело находится в полиции, решается вопрос о его рассмотрении в арбитражном суде. Пока Сысоеву и Коновалову не предъявили обвинений.

Источник

Nginx — быстрый, дерзкий и суперпопулярный сервер

Мы постепенно рассказываем о веб-серверах — это программы, которые отвечают за то, чтобы нам выдавались сайты. В прошлой серии показывали Apache — один из первых массовых веб-серверов, который до сих пор работает в огромном количестве компьютеров. А сегодня — новое поколение.

Короткая предыстория

Главная проблема веб-сервера Apache, про который мы говорили прошлый раз, — это падение производительности с ростом трафика. Чем больше людей заходят на сайт, тем хуже он справляется. Решения на тот момент были такие:

И то и другое — дорого. Чтобы решить эту проблему, в 2002 году системный администратор Игорь Сысоев начал разрабатывать собственный веб-сервер, который сможет решить проблему с проседанием под нагрузкой. Тогда Игорь работал в «Рамблере».

Через два года вышел первый релиз его веб-сервера Nginx. Сейчас это самый популярный веб-сервер в России и в тройке самых известных — в мире.

Архитектура

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

В Nginx всё устроено немного иначе:

Получается, что так как Nginx не тратит время на ожидание результата, то он может одновременно обрабатывать гораздо больше запросов, чем Apache. В этом и есть суперсила Nginx.

В чём ещё отличия от Apache

Документация. У Apache документации, форумов и примеров гораздо больше, потому что проект начался на 7 лет раньше и все материалы сразу были на английском — стандартном языке для всех программистов.

Nginx появился позже и в России, поэтому почти вся документация изначально была на русском. Из-за этого разработчикам из других стран было трудно использовать Nginx, но со временем ситуация выровнялась: сейчас проект ведётся одновременно на русском и на английском языках.

Работа с модулями. В Apache всё просто: прописал название модуля и веб-сервер сразу его подгрузил и начал использовать. Не нужно — выгрузил, тоже на ходу. Это позволяет очень гибко настраивать поведение сервера в разные моменты времени.

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

Nginx + Apache = ❤️

Может показаться, что Nginx и Apache воюют друг с другом за долю рынка, но на самом деле они отлично работают вместе:

Получается так: Nginx занимается самыми простыми запросами, которые можно выполнить моментально, а всю динамику и сборки отправляет в Apache и продолжает заниматься своими делами.

В итоге польза всем: пока Apache ждёт или собирает страницы, Nginx успевает переделать кучу дел и не тратит своё время на ожидание. Системные администраторы часто используют такую связку, чтобы сбалансировать нагрузку на сервер и более эффективно использовать ресурсы.

Кто использует

Если вы назовёте три любых крупных ИТ-компании, то две из них точно будут использовать Nginx. В этом можно легко убедиться самому, посмотрев на список тех проектов, где используют эту программу:

Причина такой популярности — в скорости работы, надёжности и универсальности Nginx. К нему можно прикрутить почти любой софт и получить любую конфигурацию ответов на запросы.

Конфликт с «Рамблером»

В 2019 году произошла такая история: Рамблер заявил, что раз Сысоев во время создания Nginx работал у них, то и все права на этот веб-сервер тоже принадлежат им. В итоге завели дело по статье о нарушении авторских прав, а Рамблер требовал возместить им ущерб в 50 миллионов рублей.

Через полгода уголовное дело прекратили за отсутствием состава преступления: компания не смогла найти подтверждения своим словам и не смогла получить права на код Nginx.

По иронии судьбы на Nginx сейчас работают серверы и самого Рамблера 🙂

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *