intermediate
Nginx reverse proxy и static serving
Маршрутизируйте requests к upstream services, отдавайте immutable static assets, сохраняйте trusted headers и отделяйте public file delivery от app logic.
Nginx эффективно отдаёт static files и проксирует динамику к Node upstream. Immutable hashed assets — длинный cache; HTML entry points — короткий или без кэша.
server {
listen 443 ssl;
root /var/www/dist;
location /assets/ {
expires 1y;
add_header Cache-Control "public, immutable";
try_files $uri =404;
}
location /api/ {
proxy_pass http://node_upstream;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Отделите public file delivery от app logic — Nginx дешевле Node для static bytes, gzip/Brotli и TLS.
На интервью: `try_files` для SPA; какие headers нужны Node для URL; как trailing slash в `proxy_pass` меняет path rewriting.
Типовые ошибки: агрессивный кэш `index.html`; без `X-Forwarded-Proto` ломаются HTTPS redirects; uploads в том же root, что build artifacts.
Компромисс — между простотой, производительностью, безопасностью и эксплуатацией: назовите, что оптимизировали и какую цену приняли.
Чеклист:
- Длинный cache только для fingerprinted static.
- Proxy API с доверенными forwarding headers.
- upstream blocks для нескольких Node instances.
- Uploads вне дерева deploy artifacts.