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").
Чтобы оставить комментарий, войдите через Discord.
Войти через Discord