The original request URI stays available while normalization and internal redirects change the path used for routing.

nginx matches normalized paths and can select a location again

nginx location matching uses a normalized URI path rather than the untouched request-target text. Percent-encoded characters are decoded, relative path components are resolved, and adjacent slashes can be merged according to configuration. Later processing can change the current URI again and trigger another location search. Understanding both transformations is necessary when a request appears to enter a different handler than its original spelling suggests. ...

August 26, 2027 · 5 min · XB Field Notes
Only a fresh read through the full projected volume sees the new ConfigMap value.

ConfigMap files and environment have different lifetimes

Changing a ConfigMap updates an API object. Whether a running application changes behavior depends on how Kubernetes delivers the value and how the application reads it. Environment injection, normal volume projection, a subPath mount, and an already-open file are different paths with different lifetimes. Diagnose the consumer that actually matters rather than treating all configuration delivery as one mechanism. ...

July 1, 2027 · 6 min · XB Field Notes
A labeled config file with a light bulb above it.

Named config files favor clarity

Configuration that is easy to find, read, and diff is more than a preference; it is how a change stays reviewable. Naming a file with a clear convention is the first step to environment-specific, single-source config. A file is a record of intent A named, versioned config file is a record of intent: the deployed values become explicit, reviewable, and reproducible just like code. When the file lives with the project, a change gets history, a blame, and a pull request, so anyone can answer ‘what actually shipped and who changed it’. A clear naming convention (app.conf for application knobs, app.env for environment shape) makes each file’s purpose obvious at a glance, and keeps the settings from being scattered into ad-hoc flags nobody can find. ...

November 21, 2026 · 6 min · XB Field Notes
Observe-decide-act boxes beside the message: Set the TLS floor, test both sides.

TLS version is a feature you pin

A TLS version policy defines which handshakes an endpoint accepts. Prefer an explicit minimum over assuming that a library’s changing defaults match your requirements. A maximum is a separate constraint: freezing it unnecessarily can prevent adoption of a newer supported protocol. Neither setting replaces certificate verification, suitable algorithms, or timely security updates. ...

September 23, 2026 · 5 min · XB Field Notes