The original request /a//b/../c?x=1 points down to current /a/c, with a separate original-retention path preserving the incoming spelling.

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
A ConfigMap edit branches to an eventually updated projected file and an unchanged existing-container environment.

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
Three winning-source columns associate host 127.0.0.1 with file, port 9001 with environment and mode prod with command line. The explicit precedence is file below environment below command line.

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: its committed values become explicit and reviewable like code. Project history and pull requests show what changed. To establish what actually ran, also record the deployed revision and runtime overrides; the repository alone cannot reveal them. 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
A version floor separates excluded TLS 1.1 from allowed 1.2 and 1.3 choices.

Set a TLS version floor and test its boundary

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