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

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

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, щоб зміни набули чинності. Якщо залишилися питання, звертайтеся до наших фахівців через лайв чат.

views 57s
views 2
Поділитися

Чи була ця стаття корисною для вас?

Популярні пропозиції VPS

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

cookie

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

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