Как настроить Nginx как обратный прокси на Ubuntu 24.04
Дата публикации: 2024-11-17T12:05:38
Теги: ["Nginx", "reverse proxy", "ubuntu"]
Nginx - это широко используемый веб-сервер со многими функциями, включая балансировку нагрузки, обратное прокси-серверирование, кэширование контента, почтовое прокси и многое другое. Это гибкое и надежное решение, известное своей высокой производительностью и эффективным использованием ресурсов. Обратный прокси-сервер управляет входящий трафик и пересылает запросы на серверы бэкэнда, связанные с определенными портами TCP для таких приложений, как Node.js, Odoo, Tomcat и других. В этом уроке вы научитесь настраивать Nginx как обратный прокси на Ubuntu 24.04.
Предпосылки
- Ubuntu 24.04 VPS.
- Доступ к корню SSH или пользователь с привилегиями sudo.
Конвенции
# - данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo. $ - данные команды должны выполняться от имени обычного пользователя
Шаг 1. Обновление системных пакетов
Для начала зайдите в свой Ubuntu 24.04 VPS с помощью SSH:
#ssh root@IP_Address -p Port_number
Замените «IP_Address» и «Port_number» фактическим IP-адресом вашего сервера и номером порта SSH. При необходимости замените «root» на имя пользователя вашей учетной записи Sudo.
После входа в систему вы должны убедиться, что все пакеты Ubuntu, установленные на сервере, обновлены. Вы можете сделать это, выполнив следующую команду:
# apt update && apt-upgrade -y
Шаг 2. Установите Nginx
Если на вашем сервере Ubuntu 24.04 Nginx еще не установлен, вы можете установить Nginx с помощью команды apt:
# apt install nginx -y
После установки Nginx вы можете проверить версию Nginx, и если сервер Nginx работает с командами:
# nginx -version nginx version: nginx/1.24.0 (Ubuntu)
Версия Nginx составляет 1,24.0 на момент написания сообщения.
Теперь, когда у вас установлен и запущен Nginx, вы можете пойти дальше и настроить обратный прокси.
Шаг 3. Настройка Nginx в качестве обратного прокси
Теперь, когда Nginx установлен, вы можете настроить его как обратный прокси. Основные файлы конфигурации Nginx хранятся в каталоге `/etc/nginx/nginx.conf`, а отдельные конфигурации сервера находятся в каталоге `/etc/nginx/sites-available/`.
Во-первых, вы можете создать новый блок сервера для вашего обратного прокси, перейдя в каталог `/etc/nginx/sites-available/`:
# cd /etc/nginx/sites-available/
и создать новый файл конфигурации, например, `reverse-proxy.conf`:
# nano reverse-proxy.conf
Добавьте обратную конфигурацию прокси. Ниже приведена примерная конфигурация для прокси-сервера, работающего на порту 3000:
nginx
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
`proxy_pass`: Данная директива определяет сервер бэкэнда, куда следует направлять запросы.
Директивы `proxy_set_header` необходимы для сохранения информации о клиенте, что полезно для регистрации и обработки бэкэнда.
Теперь вы можете включить конфигурацию, создав символическую ссылку в каталоге с поддержкой сайтов:
# ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf
Проверьте конфигурацию Nginx, чтобы убедиться, что нет синтаксических ошибок:
# nginx -t
Если тест будет успешным, перезапустите Nginx, чтобы применить изменения:
# systemctl restart nginx
Откройте веб-браузер и посетите http://yourdomain.com. Если все настроено правильно, вы должны увидеть контент, обслуживаемый вашим бэкэнд-приложением.
Шаг 4. Настройка SSL
С обратным прокси-сервером, настроенным для вашего домена, теперь вы можете защитить его с помощью SSL, вы можете получить бесплатный SSL-сертификат с помощью Let’s Encrypt. Вот быстрый способ сделать это:
Установите Certbot с командой:
# apt install certbot python3-certbot-nginx
Получите и установите SSL-сертификат для вашего домена:
# certbot --nginx -d yourdomain.com
Certbot автоматически настроит Nginx для SSL и перезагрузит сервис. Вы можете проверить SSL, посетив https://yourdomain.com.
Завершение
Вы успешно настроили Nginx как обратный прокси на Ubuntu 24.04. Независимо от того, выполняете ли вы прокси-запросы в одном приложении или используете Nginx для балансировки нагрузки на нескольких серверах, это важный инструмент в наборе инструментов любого системного администратора.