Как настроить Nginx в качестве обратного прокси на Ubuntu 24.04

Nginx или NGINX – это широко распространенный веб-сервер с множеством функций, включая балансировку нагрузки, обратное проксирование, кэширование контента, проксирование почты и многое другое. Это гибкое и надежное решение, известное своей высокой производительностью и эффективным использованием ресурсов. Обратный прокси управляет входящим трафиком и перенаправляет запросы на внутренние серверы, привязанные к определенным TCP-портам, для таких приложений, как Node.js, Odoo, Tomcat и других. В этом руководстве вы научитесь настраивать Nginx в качестве обратного прокси на Ubuntu 24.04.

Шаг 1. Обновление системных пакетов

Для начала войдите на ваш Ubuntu 24.04 по 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.

systemctl status nginx

Если сервер Nginx работает, вы должны получить аналогичный результат.

● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Wed 2024-10-16 07:27:58 UTC; 42min ago
Docs: man:nginx(8)
Process: 967 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 976 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 979 (nginx)
Tasks: 2 (limit: 4218)
Memory: 3.0M (peak: 3.2M)
CPU: 19ms
CGroup: /system.slice/nginx.service
├─979 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
└─980 "nginx: worker process"
Oct 16 07:27:58 systemd[1]: Starting nginx.service - A high performance web server and a reverse proxy server…
Oct 16 07:27:58 systemd[1]: Started nginx.service - A high performance web server and a reverse proxy server.

Теперь, когда у вас установлен и работает 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 необходимы для сохранения информации о клиенте, что полезно для протоколирования и обработки на бэкенде.

Теперь вы можете включить конфигурацию, создав символическую ссылку в директории sites-enabled:

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. Если все настроено правильно, вы должны увидеть содержимое, обслуживаемое вашим внутренним приложением.

Шаг 6: Настройка SSL

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

Зарубин Иван Эксперт по Linux и Windows

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

Похожие статьи

Комментарии (0)

Опубликовать