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

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

Мануал

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

Прокси-сервер действует как посредник между клиентом и другим сервером.

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

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

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

Теперь давайте сделаем более общий вариант настройки 🙂

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

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

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

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

Для начала стоит сказать, что можно воспользоваться услугами прокси, не настраивая все самому.

Представлено очень большое количество решений, среди которых можно выделить https://youproxy.ru/russian-proxy, не зависимо от целей, которые вы преследуете, используя прокси-сервера.

Чтобы настроить 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.

Дополнительные настройки

Помимо директивы 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 timeout – позволяет установить значение тайм-аута для отправки и получения прокси-запросов.

Например:

proxy_connect_timeout   90;
proxy_send_timeout      90;
proxy_read_timeout      90;

proxy_buffers – это позволяет Nginx временно хранить ответ прокси-сервера и отправлять его на сервер запросов только после того, как прокси-сервер завершит ответ.

Например:

Если ваше приложение отправляет большой кусок файла, то вы можете отключить proxy_buffers:
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий