Настроить reverse proxy на nginx
Конфигурация службы · Среднее · 25 мин · 150 баллов
Настроить reverse proxy на nginx
На сервере работает приложение-бэкенд: оно слушает 127.0.0.1:3000 и отвечает только
локально. Нужно опубликовать его наружу через nginx: запросы на порт 80 должны
проксироваться на бэкенд.
Задача
Настрой nginx так, чтобы:
- nginx слушал порт 80 и проксировал запросы на
http://127.0.0.1:3000(proxy_pass); curl http://localhost/возвращал ответ бэкенда (код 200, тело от приложения);- конфигурация была валидной (
nginx -t), а служба — перезагружена и активна.
Подсказки по подходу
- Конфиг сайта обычно лежит в
/etc/nginx/sites-available/и включается симлинком вsites-enabled/(либо кладётся в/etc/nginx/conf.d/). - Базовый блок:
server { listen 80; location / { proxy_pass http://127.0.0.1:3000; } }; полезно пробросить заголовки (proxy_set_header Host $host;). - Не забудь убрать/переопределить дефолтный сайт, если он держит порт 80.
- После правки:
sudo nginx -tиsudo systemctl reload nginx.
Всё нужное уже установлено. Интернет на машине отсутствует — и не понадобится: бэкенд локальный.
Подсказки
Подсказка 1
Сначала убедись, что бэкенд жив: curl -I http://127.0.0.1:3000/ должен ответить.
Теперь задача — отдать его через nginx на порту 80.
Подсказка 2
Создай конфиг сайта (например /etc/nginx/sites-available/proxy):
server {
listen 80 default_server;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
}
}
Включи его симлинком в sites-enabled/ и отключи конфликтующий default.
Подсказка 3
Проверь и примени: sudo nginx -t, затем sudo systemctl reload nginx. Убедись:
curl http://localhost/ отдаёт ответ бэкенда (код 200).
Поднимет вашу личную эфемерную Linux-ВМ для задания — обычно пара секунд. После работы её можно остановить.