Dada esta configuración de nginx:
http { keepalive_timeout 65; upstream nodejs { server 127.0.0.1:8088; } server { listen 8080; location / { proxy_pass http://nodejs; proxy_set_header Connection ""; 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; } } } Entiendo que http.keepalive_timeout define el tiempo de espera para el cliente, mientras que http.upstream.keepalive_timeout definiría el tiempo de espera para el flujo ascendente.
¿Un valor de keepalive_timeout definido en http también establece implícitamente el upstream keepalive_timeout cuando no está explícitamente definido como en el ejemplo anterior, porque upstream es parte de http ?
Finalmente encontré un capítulo sobre la herencia en los documentos . La respuesta es "sí", el contexto secundario hereda las directivas del contexto principal:
En general, un contexto hijo, uno contenido dentro de otro contexto (su padre), hereda la configuración de las directivas incluidas en el nivel padre. Algunas directivas pueden aparecer en varios contextos, en cuyo caso puede anular la configuración heredada del elemento principal al incluir la directiva en el contexto secundario.