The same eligible 200 cache key moves from MISS through a fresh HIT with configured 2s validity to EXPIRED. Separately, six held cold-fill clients share one origin request under the cache lock.

A microcache serves fresh entries briefly and coalesces misses explicitly

A microcache keeps reusable responses for a short freshness lifetime, often a few seconds. Requests for the same selected representation can reuse a fresh entry during that window. The response might lag a new origin update, but it is not HTTP-stale merely because it came from a cache. Expiration, permission to serve stale content, and concurrent cache filling are separate policies. ...

March 12, 2028 · 6 min · XB Field Notes
The proxy remains between client and origin forwarding bytes in two directions. CONNECT success and origin TLS verification are separate checks.

The CONNECT method opens a raw tunnel

CONNECT asks a proxy to establish a tunnel; it does not make the proxy disappear from the data path. After admission, the proxy still forwards bytes in both directions and owns sockets, buffers, and failure handling. CONNECT itself provides no encryption: HTTPS adds a separately verified TLS session through that tunnel. ...

December 13, 2027 · 6 min · XB Field Notes
Upstream and client flank a finite two-part proxy buffer with forward arrows and a return backpressure path; the client path exists before upstream completion.

Response buffering absorbs a speed difference within a resource budget

Response buffering lets nginx read from an upstream while delivering data to a client at another pace. With proxy_buffering on, nginx uses configured memory buffers and can write part of a large response to a temporary file. It need not collect the entire response before sending the first bytes. The available buffering determines how far the two connections can progress independently. ...

December 7, 2027 · 6 min · XB Field Notes
An untrusted client claim reaches a replacement boundary; a crossed claim path gives way to the observed peer used at a direct-client edge.

A reverse proxy needs an explicit header trust boundary

A reverse proxy accepts a client connection and makes a separate request to an upstream application. The application’s socket peer is therefore the proxy, while information about an earlier client can arrive through request headers. Those headers are useful only when the deployment defines who may set them and how they are validated. Proxying a request does not automatically make every forwarded identity or scheme claim trustworthy. ...

August 27, 2027 · 6 min · XB Field Notes
Historical nginx fixture: a bypass request returns B while the cached A remains stored; the next ordinary request is HIT A.

An expired cache entry needs a revalidation and stale policy

An nginx proxy cache has several independent decisions: identifying the stored response, deciding whether it may be reused, deciding whether a new response may be stored, and handling an expired copy. Treating those decisions as one TTL setting makes failures difficult to explain. Verify the resulting request path and bytes, not merely that nginx accepts the configuration. ...

June 24, 2027 · 6 min · XB Field Notes
Two aligned columns replace /replace/ with /v1/ while preserving item?x=1. This is literal proxy URI prefix replacement.

proxy_pass maps the URI as well as selecting an upstream

nginx proxy_pass chooses an upstream destination and also affects the request URI sent there. The important distinction is whether the directive includes a URI component, not simply whether its text ends with a slash. In an ordinary prefix location, a literal target URI replaces the matching normalized prefix. An authority-only target can pass the original request URI when the request has not been rewritten. ...

April 2, 2027 · 5 min · XB Field Notes
One worker configured with keepalive 2 holds four active upstream connections, then retains two idle connections after release. Idle retention is not an active connection cap.

Upstream keepalive caches idle connections, not active capacity

An nginx upstream keepalive cache preserves eligible idle backend connections for later requests. In the tested configuration, keepalive 2 permits two idle connections in that upstream cache for each worker. It does not restrict the worker to two active backend connections. Reuse reduces repeated connection setup; it does not itself impose an application concurrency budget or guarantee lower latency for every request. ...

March 15, 2027 · 5 min · XB Field Notes
The exact /api/echo route crosses a proxy to /echo, while a separate same-network path bypasses the proxy.

A reverse proxy enforces an entry policy only on traffic that traverses it

A reverse proxy accepts client requests and makes a separate upstream exchange with an application. It can centralize routing, transport, headers, and admission policy when those behaviors are configured. It does not automatically hide every backend interface, authenticate every caller, or terminate TLS. The useful boundary is the actual traffic path and policy applied there, not simply the proxy’s position in a diagram. ...

November 5, 2026 · 7 min · XB Field Notes