Установка и настройка Nginx на VPS как обратного прокси: коротко и с данными
Конспект страницы: 6 разделов коротко, данные на 14 октября 2026 и ответы на 4 вопроса. Полный разбор с примерами: Установка и настройка Nginx на VPS как обратного прокси.
Коротко
Установка Nginx на Ubuntu или Debian занимает одну команду apt, а работа начинается после неё: настроить его как обратный прокси, то есть сервер, который принимает запросы из интернета и передаёт их приложению на локальном порту. Ниже рабочий конфиг для контейнера на 127.0.0.1, подключение HTTPS и разбор ошибок 502, 504 и 413. Nginx берут, когда рядом с прокси нужна раздача статики или PHP, а конфиг уже знаком.
Конспект по разделам
Установка Nginx на Ubuntu и Debian: пакет, служба и файрвол
В Debian и Ubuntu конфиги сайтов хранят в /etc/nginx/sites-available/, а включают символической ссылкой в /etc/nginx/sites-enabled/. Версия в репозитории дистрибутива может отставать, свежие ветки stable и mainline ставят из репозитория nginx.org. Если конфиги не хочется править руками, в маркетплейсе Таймвеб Клауд есть Nginx Proxy Manager (156 установок на 14 октября 2026): веб-интерфейс над Nginx в Docker, где домены и сертификаты Let's Encrypt добавляют кнопками.
- Поставьте пакет: sudo apt update && sudo apt install nginx.
- Откройте порты командой sudo ufw allow 'Nginx Full': профиль из пакета разрешает 80 и 443.
- Проверьте адрес сервера в браузере: должна открыться страница приветствия Nginx.
- Уберите заглушку, когда будет свой сайт: sudo rm /etc/nginx/sites-enabled/default.
Конфиг Nginx для контейнера на localhost: proxy_pass и заголовки
Контейнер публикуют только на локальном адресе, -p 127.0.0.1:3000:3000, чтобы приложение было доступно через Nginx, а не напрямую. Файл /etc/nginx/conf.d/websocket.conf объявляет переменную для WebSocket, сайт лежит в sites-available: В документации текущей версии умолчанием у proxy_http_version названа 1.1, в старых сборках было 1.0, поэтому строку оставляют явно. Nginx в самом контейнере читает файлы из /etc/nginx/conf.d/: смонтируйте каталог с конфигами в сервис образа nginx, а в proxy_pass пишите имя сервиса приложения.
HTTPS для Nginx: сертификат от Certbot одной командой
Когда сайт открывается по HTTP, включите сертификат: sudo certbot --nginx -d app.example.com. Certbot допишет в ваш блок server порт 443, пути к сертификату и переадресацию с HTTP. Установка, продление и ошибки выпуска разобраны на странице установка Certbot.
Ошибки Nginx за прокси: 502, 504, 413 и неверный Host
Неочевидная ловушка с Host: без своей строки Nginx отправляет приложению заголовок со значением из proxy_pass, то есть 127.0.0.1:3000. Приложение строит ссылки на этот адрес, а почтовые письма и OAuth-переходы ведут в пустоту. Точную причину ищите в журнале, а подсказка ниже сверит строку с готовым действием.
Балансировщик нагрузки Nginx: upstream на два контейнера
Блок upstream превращает Nginx в простой балансировщик: запросы чередуются между серверами по кругу. Для приложений без общего состояния добавляйте строку least_conn;, чтобы новый запрос шёл на менее занятую копию. Затем в location пишут proxy_pass http://app_pool;.
Запустите свой сервер за пару минут
Почасовая оплата: тестовый стенд на сутки стоит десятки рублей, а не месячный тариф.
- NVMe-диски и гарантированная доля процессора
- Root-доступ и любой софт, от Docker до игровых серверов
- Маркетплейс: 91 приложение в один клик
- Бесплатный перенос проекта силами специалистов
Данные
| Задача | Команда |
|---|---|
| Проверить конфиг | sudo nginx -t |
| Применить без остановки | sudo systemctl reload nginx |
| Перезапустить | sudo systemctl restart nginx |
| Остановить и не поднимать после перезагрузки | sudo systemctl disable --now nginx |
| Заголовок | Зачем |
|---|---|
| Host | Приложение видит домен, который ввёл посетитель, и строит правильные ссылки |
| X-Real-IP и X-Forwarded-For | Журнал приложения показывает адрес посетителя, а не 127.0.0.1 |
| X-Forwarded-Proto | Приложение знает, что снаружи был HTTPS, и не зацикливает переадресацию |
| Upgrade и Connection | Пропускают WebSocket, на которых работают панели и чаты |
Данные на 14 октября 2026.
Вопросы и ответы
Как перезапустить Nginx на сервере, не уронив сайты?
Сначала проверьте конфиг командой nginx -t, затем выполните systemctl reload nginx: рабочие процессы заменятся плавно. Полный restart обрывает текущие соединения и нужен после обновления пакета.
Как остановить Nginx на сервере, чтобы освободить порт 80?
Команда sudo systemctl stop nginx остановит службу, а disable уберёт её из автозапуска. Проверьте, что порт свободен, командой ss -tlnp.
Можно ли запустить два Nginx на одном сервере?
Да. Один слушает 80 и 443 и проксирует запросы, второй, например в Docker, занимает порт 8080 на локальном адресе. Два процесса на одном порту не запустятся.
Как развернуть Nginx на своём сервере с нуля?
Создайте сервер с Ubuntu, поставьте пакет nginx, откройте порты 80 и 443, добавьте блок server с proxy_pass на приложение и выпустите сертификат через Certbot.