Настройка обратного прокси

Настройка обратного прокси

25.11.2022
Автор: HostZealot Team
2 мин.
79

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

Зачем нужен обратный прокси

Сценариев использования технологии может быть несколько. Рассмотрим основные:

  1. Сокрытие существования опрашиваемых им серверов, а также их характеристик.
  2. Защита от DoS и DDoS – для этого в связке с обратным прокси системные администраторы ставят программный брандмауэр.
  3. В качестве костыля – если на основном сайте отсутствует поддержка подключения через SSL, можно подключить обратный прокси-сервер с наличием аппаратного SSL-ускорителя.
  4. Использование в качестве балансировщика нагрузок – такой сервер может обеспечить равномерное распределение нагрузки между двумя, тремя и более серверами.
  5. Снижение нагрузки на основной сервер за счет размещения на обратном прокси динамического и статического содержимого сайта. Этот метод часто называют акселерацией.
  6. Компрессия данных с целью сокращения времени загрузки.
  7. Может применяться для безопасного и удобного A/B-тестирования.

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

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

Первым делом открывайте файл конфигурации блока сервера домена. В нем необходимо указать расположение и прокси-сервер:

server {
    listen 80;
    server_name www.example.com example.com;
 
    location /app {
       proxy_pass http://127.0.0.1:7070;
	}

}


URL сервера, который нужно проксировать, устанавливают с proxy_pass директивы proxy_pass. Это позволяет использовать HTTP или HTTPS:

  • в качестве протокола;
  • домена;
  • IP-адреса;
  • необязательного порта;
  • унифицированного идентификатора ресурса в качестве адреса.

Представленная выше конфигурация дает команду Nginx пересылать все запросы в /app прокси-серверу по адресу http://127.0.0.1:7070. Вы можете поменять на нужный вам айпи. Предоставлен только ради ознакомления.

Настройка обратного прокси

Файлы с серверными блоками хранятся в каталоге /etc/nginx/sites-available – если вы пользуетесь Ubuntu или Debian, а также в /etc/nginx/conf.d, если используете CentOS.

Для наглядной иллюстрации работы proxy_pass директивы location и proxy_pass рассмотрим простой пример:

server {
    listen 80;
    server_name www.example.com example.com;
 
    location /blog {
       proxy_pass http://node1.com:6000/wordpress/;
	}

}


Когда посетитель сайта обратится к http://example.com/blog/my-post, веб-сервер Nginx ретранслирует данный запрос по прокси на http://node1.com:6000/wordpress/my-post.

Если адрес проксируемого сервера содержит унифицированный идентификатор ресурса, ( /wordpress/ ), URI запроса, транслируемый на проксируемый сервер, заменяется URI, который указан в директиве. В случае, когда адрес прокси-сервера указан без унифицированного идентификатора ресурса, полный URI запроса передается на прокси-сервер.

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

Для этого используется одна из четырех директив:

  • fastcgi_pass — обратный прокси к серверу FastCGI.
  • uwsgi_pass — обратный прокси к серверу uwsgi.
  • scgi_pass — обратный прокси к серверу SCGI.
  • memcached_pass — обратный прокси к серверу Memcached.

Например, очень часто Nginx используют в качестве обратного прокси-сервера PHP-FPM:

server {
 
	# ... other directives
 
    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
	}

}


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

# Как сделать Поделиться:
Статьи по Теме