Налаштування зворотного проксі

watch 57s
views 2

09:41, 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

-10%

CPU
CPU
4 Epyc Cores
RAM
RAM
4 GB
Space
Space
50 GB NVMe
Bandwidth
Bandwidth
Unlimited
KVM-NVMe 4096 Linux

25.9

При оплаті за рік

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB HDD
Bandwidth
Bandwidth
300 Gb
KVM-HDD HK 4096 Linux

12.03

При оплаті за рік

-10%

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

231

При оплаті за рік

CPU
CPU
4 Epyc Cores
RAM
RAM
4 GB
Space
Space
50 GB NVMe
Bandwidth
Bandwidth
Unlimited
Keitaro KVM 4096
OS
CentOS
Software
Software
Keitaro

При оплаті за місяць

-15%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
80 Mbps
DDoS Protected SSD-wKVM 8192 Windows

101

При оплаті за рік

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 8192 Linux

25.85

При оплаті за рік

-20.5%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
8 TB
KVM-SSD 8192 Metered Linux

57

При оплаті за рік

-15.4%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
60 Mbps
DDoS Protected SSD-wKVM 4096 Windows

73

При оплаті за рік

CPU
CPU
6 Epyc Cores
RAM
RAM
16 GB
Space
Space
150 GB NVMe
Bandwidth
Bandwidth
Unlimited
Keitaro KVM 16384
OS
CentOS
Software
Software
Keitaro

При оплаті за місяць

-15.4%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
150 GB SSD
Bandwidth
Bandwidth
100 Mbps
DDoS Protected SSD-wKVM 16384 Windows

130

При оплаті за рік

Інші статті на цю тему

cookie

Чи приймаєте ви файли cookie та політику конфіденційності?

Ми використовуємо файли cookie, щоб забезпечити вам найкращий досвід роботи на нашому сайті. Якщо ви продовжуєте користуватися сайтом, не змінюючи налаштувань, вважайте, що ви згодні на отримання всіх файлів cookie на сайті HostZealot.