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