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

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

-5%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
40 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 1024 Windows

$ 14.09

$

При оплате за год

-4.7%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
40 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 1024 Windows

$ 12.02

$

При оплате за год

-7.3%

CPU
CPU
3 Epyc Cores
RAM
RAM
2 GB
Space
Space
25 GB NVMe
Bandwidth
Bandwidth
Unlimited
wKVM-NVMe 2048 Windows

$ 25.63

$

При оплате за год

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
150 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 16384 Linux

$ 60.57

$

При оплате за год

-20.4%

CPU
CPU
2 Xeon Cores
RAM
RAM
2 GB
Space
Space
30 GB SSD
Bandwidth
Bandwidth
300 GB
KVM-SSD 2048 HK Linux

$ 20.97

$

При оплате за год

-10%

CPU
CPU
8 Epyc Cores
RAM
RAM
32 GB
Space
Space
200 GB NVMe
Bandwidth
Bandwidth
Unlimited
KVM-NVMe 32768 Linux

$ 112.75

$

При оплате за год

-5.3%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
60 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 2048 Windows

$ 13.53

$

При оплате за год

-20.5%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
150 GB SSD
Bandwidth
Bandwidth
10 TB
KVM-SSD 16384 Metered Linux

$ 110.66

$

При оплате за год

-9.2%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
10Ge-wKVM-SSD 4096 Windows

$ 83.87

$

При оплате за год

-7.2%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 4096 Windows

$ 24.46

$

При оплате за год

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

cookie

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

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