advanced
Nginx load balancing и TLS termination
Настраивайте upstream pools, health expectations, failover, connection reuse, certificate chains, SNI, ALPN и HTTP-to-upstream boundaries.
Определите upstream pools с методами балансировки (`least_conn`, `ip_hash`, weights). TLS termination на Nginx освобождает Node от cert management и даёт HTTP/2 клиентам при HTTP/1.1 upstream при необходимости.
upstream node_pool {
least_conn;
server 10.0.0.11:3000 max_fails=3 fail_timeout=30s;
server 10.0.0.12:3000 max_fails=3 fail_timeout=30s;
keepalive 32;
}
server {
listen 443 ssl http2;
ssl_certificate /etc/ssl/fullchain.pem;
ssl_certificate_key /etc/ssl/privkey.pem;
location / {
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_pass http://node_pool;
}
}
`proxy_http_version 1.1` и пустой `Connection` включают upstream keepalive. Re-encrypt upstream (`proxy_pass https://`) при недоверенной внутренней сети.
На интервью: SNI для multi-tenant certs; OCSP stapling; когда пропускать TLS до Node (mTLS end-to-end).
Типовые ошибки: без upstream keepalive — churn сокетов; слабые cipher suites; просроченные intermediate certs.
Компромисс — между простотой, производительностью, безопасностью и эксплуатацией: назовите, что оптимизировали и какую цену приняли.
Чеклист:
- upstream keepalive и max_fails.
- Автоматизация renewal (ACME).
- Версии HTTP client-side vs upstream.
- Мониторинг handshake latency и expiry cert.