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.