← К списку

NGINX как reverse proxy для Node: чистый конфиг

NGINX как reverse proxy для Node: чистый конфиг

Зачем перед Node ставят NGINX

Node прекрасно отдаёт запросы, но NGINX делает это лучше на "фронте": терминирует HTTPS, отдаёт статику, балансирует и защищает от части мусорного трафика. Node слушает локальный порт, NGINX смотрит наружу.

server {
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        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_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Не забудьте

  • В приложении - app.set("trust proxy", 1), иначе IP и secure-куки будут неверными.
  • HTTPS - через certbot, сертификат продлевается сам.
  • Порт за прокси должен совпадать с тем, что реально слушает приложение (классическая причина "502").

// обсуждение

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

Будьте первым, кто оставит комментарий.

Чтобы оставить комментарий, войдите через Discord.

Войти через Discord