Configuration Directive Inheritance Silently Drops Critical Headers

7/10 High

NGINX configuration inheritance is opaque and non-intuitive: array directives like `proxy_set_header` or `add_header` in child contexts (e.g., `location{}` blocks) completely override parent context values (e.g., `http{}` blocks) rather than merging. This silently drops critical security or tracing headers, leading to unexpected behavior and security issues.

Category
config
Workaround
partial
Stage
debug
Freshness
persistent
Scope
single_lib
Upstream
open
Recurring
Yes
Maintainer
active

Sources

Collection History

Query: “What are the most common pain points with Nginx for developers in 2025?4/4/2026

For array directives like `proxy_set_header` or `add_header`, a setting in a child context (e.g., a `location{}` block) completely overrides (rather than merges with) values defined in the parent context...resulting in critical headers (like security or tracing headers) being silently dropped, leading to unexpected application behavior or security issues.

Created: 4/4/2026Updated: 4/4/2026