Как использовать Nginx в качестве обратного прокси

reverse-proxy-featured
⏱️ 1 min read

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

Что такое обратный прокси?

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

иллюстрация обратного прокси

Преимущества обратного прокси

В зависимости от вашего приложения у вас могут быть разные варианты использования обратного прокси.

  • Обратный прокси позволяет запускать несколько приложений на одном сервере. – Если на одном сервере запущено несколько приложений, они не могут одновременно прослушивать порты 80 или 433. С помощью обратного прокси-сервера вы можете настроить обратный прокси-сервер для перенаправления трафика на отдельные приложения по мере необходимости.
  • Балансировки нагрузки – Если у вас есть несколько серверов, на которых запущено одно и то же приложение, вы можете использовать обратный прокси-сервер для равномерного распределения трафика между каждым сервером.
  • Брандмауэр веб-приложений – Вы можете использовать обратный прокси-сервер, чтобы скрыть свое приложение от общественности, а также отфильтровать IP-спам или защититься от DDOS-атаки.
  • Простое ведение журнала и аудит – Поскольку весь входящий трафик управляется обратным прокси-сервером, проще регистрировать и контролировать поток трафика.

Настройка Nginx в качестве обратного прокси

Чтобы настроить Nginx в качестве обратного прокси, мы будем использовать proxy_pass параметр в файлах конфигурации Nginx.

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

В большинстве случаев Nginx будет внешним сервером, прослушивающим порт 80 (HTTP) или 443 (HTTPS) для входящих запросов. Поскольку может быть только одна служба, прослушивающая порт 80 или 443, вашему приложению придется прослушивать другой порт, например порт 8081. Простейшая конфигурация будет примерно такой:

server {
  listen 80;
  listen [::]:80;
 
  server_name myapp.com;
 
  location / {
      proxy_pass http://localhost:8081/;
  }
}

Это означает, что все входящие запросы к myapp.com через порт 80 будут перенаправлены на порт 8081.

Advanced Setup

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

proxy_set_header – Это позволяет настроить заголовок для отправки в фоновое приложение. Например, см. следующую конфигурацию:

proxy_set_header        Host            $host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

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

время ожидания прокси – Это позволяет вам установить значение тайм-аута для отправки и получения прокси-запросов. Например:

proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;

proxy_buffers — Это позволяет Nginx временно удерживать ответ проксируемого сервера и отправлять на сервер запросов только после того, как проксируемый сервер заканчивает отвечать. Например:

proxy_buffers           32 4k;

Если ваше приложение собирается отправить большой фрагмент файла, вы можете отключить proxy_buffers:

proxy_buffering     off;

Резюме

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

Кредит изображения: Обратный прокси, Обратный прокси

Join our Newsletter and receive offers and updates! ✅

0 0 голоса
Article Rating
Аватар Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

Читайте также:

Подписаться
Уведомить о
guest
0 Comments
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x