Поиск по сайту:

Обратный прокси с Nginx: пошаговое руководство по настройке


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

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

Что такое обратный прокси?

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

Служба обратного прокси-сервера действует как интерфейсная часть, обрабатывает все входящие клиентские запросы и распределяет их по внутреннему веб-сайту, базе данных или другим серверам.

Использование Nginx в качестве обратного прокси-сервера дает вам несколько дополнительных преимуществ:

  • Балансировка нагрузки . Nginx может выполнять балансировку нагрузки для распределения запросов клиентов между прокси-серверами, повышая производительность, масштабируемость и надежность.
  • Улучшенная безопасность. При использовании обратного прокси-сервера клиенты не будут иметь информации о наших внутренних серверах, поэтому ни один злонамеренный клиент не сможет получить к ним прямой доступ для использования каких-либо уязвимостей. С точки зрения клиента это создает впечатление, будто все происходит из одного места.
  • Повышение производительности . Используя Nginx в качестве обратного прокси-сервера, вы можете кэшировать предварительно обработанные версии страниц, чтобы ускорить загрузку страниц. Он работает путем кэширования контента, полученного в результате ответов прокси-серверов, и использования его для ответа клиентам без необходимости каждый раз обращаться к прокси-серверу за одним и тем же контентом.
  • Завершение SSL – Nginx может выступать в качестве конечной точки SSL для соединений с клиентами. Он будет обрабатывать и расшифровывать входящие SSL-соединения и шифровать ответы прокси-сервера.

Как настроить обратный прокси с помощью Nginx

1. Установка Nginx

Nginx — самый популярный пакет веб-серверов, развернутый в Интернете. Он может работать как обратный прокси-сервер, направляя веб-трафик на определенные серверы.

Позвольте мне показать вам, как установить Nginx в различных дистрибутивах Linux.

По теме: Как установить и настроить веб-сервер Nginx

Чтобы установить Nginx в Debian, Ubuntu, Linux Mint, Kali и других производных Debian или Ubuntu, выполните следующие команды:

sudo apt update
sudo apt install nginx

В Fedora, CentOS, Red Hat и других производных Fedora или Red Hat выполните следующие команды:

sudo dnf upgrade
sudo dnf install nginx

Чтобы установить Nginx в Arch Linux, Manjaro и других производных Arch, выполните следующие команды:

sudo pacman -Syu
sudo pacman -S nginx

После завершения установки вы можете убедиться, что Nginx установлен правильно, проверив версию программного обеспечения. Введите следующее:

nginx -v
nginx version: nginx/1.18.0 (Ubuntu)

2. Настройка Nginx

Мы установили основной сайт по адресу example.com с доменным именем на том же сервере, на котором работает наш Nginx. Однако наш блог WordPress установлен в субдомене blog.example.com на другом сервере с IP-адресом 127.0.1.10.

По теме: Как настроить Nginx для работы с PHP через PHP-FPM

Нам нужно настроить обратный прокси-сервер с Nginx для проксирования запросов для поддомена blog.example.com, чтобы все запросы перенаправлялись на 127.0.1.10. Для этого выполните шаги, показанные ниже.

1. Отключите предварительно настроенный виртуальный хост Nginx по умолчанию:

unlink /etc/nginx/sites-enabled/default

2. Войдите в каталог /etc/nginx/sites-available и создайте файл конфигурации обратного прокси.

cd /etc/nginx/sites-available
sudo vim example.conf

Вставьте следующую конфигурацию Nginx.

server {
        listen 80;
        server_name example.com www.example.com;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }
}

server {
        listen 80;
        server_name blog.example.com;

        location / {
                proxy_pass http://127.0.1.10:80;
        }
}

Как видите,  вы можете продолжать использовать example.com на том же экземпляре Nginx, но Nginx будет перенаправлять все входящие соединения для blog.example.com на порт . 80 к серверу 127.0.1.10, прослушивающему порт 80.

3. Сохраните файл, а затем активируйте его, создав символическую ссылку:

sudo ln -s /etc/nginx/sites-available/example.conf /etc/nginx/sites-enabled/

4. Проверьте Nginx на наличие ошибок конфигурации:

sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

5. Если ошибок нет, перезапустите Nginx, чтобы изменения вступили в силу:

sudo systemctl restart nginx

Запустите веб-браузер и перейдите по URL-адресу своего блога WordPress. Через Nginx вы будете перенаправлены на 127.0.1.10, где будет размещен ваш блог WordPress.

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

Вы можете узнать больше обо всех директивах обратного прокси-сервера в подробном указателе директив Nginx.

Заключение

Теперь вы знаете, как настроить обратный прокси-сервер с помощью Nginx. Как видите, настройка обратного прокси-сервера Nginx — это простой процесс. Но, конечно, существует множество способов его установки и настройки, которые полностью зависят от ваших требований.

Статьи по данной тематике: