Nginx - вышестоящий сервер

{title}

Вышестоящий сервер - это тип сервера, для которого Nginx служит прокси-сервером для соединения, то есть Nginx фильтрует запросы и отправляет только те, которые он может обработать. Эти типы серверов могут находиться на виртуальной машине, на другой физической машине или даже быть демон-сервисами в среде UNIX, ожидающей вызова.
На практике это означает, что это может быть сервер Apache, сконфигурированный для обслуживания только определенных запросов через порт TCP, или это может быть промежуточное ПО, которое Ruby интерпретирует для приложения Rails . Поэтому Nginx может обрабатывать начальные запросы и быть обратным прокси-сервером сервисов.
Уникальные вышестоящие серверы
Они являются серверами, которые имеют одну точку подъема, как указано их именем, примером этого может быть сервер Apache, который в большинстве конфигураций, которые мы находим, не оптимизирован для обслуживания нескольких одновременных соединений, поскольку при перезарядке с Модули, обслуживающие статические файлы, снижают их эффективность.
Здесь появляется Nginx, который отвечает за управление несколькими подключениями и таким образом передает Apache только те файлы, которые он действительно должен интерпретировать, например, файлы PHP .
Базовая конфигурация может быть следующей:

{title}


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

{title}


Как это работает?

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

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

{title}


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