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

watch 56s
views 2

08:25, 25.11.2022

Содержание статьи
arrow

  • Зачем нужен обратный прокси
  • Использование Nginx в качестве обратного прокси-сервера
  • Как настроить Nginx в качестве обратного прокси для прокси-сервера без HTTP

Обратный прокси-сервер – разновидность прокси-сервера, транслирующего клиентские запросы из внешней сети на один или несколько серверов, расположенных в рамках внутренней сети. Далее в статье мы расскажем, для чего он нужен и как его настроить при необходимости на примере веб-сервера 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, чтобы изменения вступили в силу. Если остались вопросы, обращайтесь к нашим специалистам через лайв чат.

Поделиться

Была ли эта статья полезной для вас?

Популярные предложения VPS

Другие статьи на эту тему

cookie

Принять файлы cookie и политику конфиденциальности?

Мы используем файлы cookie, чтобы обеспечить вам наилучший опыт работы на нашем сайте. Если вы продолжите работу без изменения настроек, мы будем считать, что вы согласны получать все файлы cookie на сайте HostZealot.