English for Nginx Configuration
Learn the English vocabulary for Nginx configuration: server blocks, upstreams, and reverse proxying, explained for discussing web server setup clearly.
Pronunciation: /ˈɛndʒɪn ɛks/ (“engine-x”) — a common stumbling point for anyone reading it as “N-jinks” for the first time. Beyond the name, the config vocabulary — server blocks, upstreams, locations — is what makes discussing a reverse proxy setup precise instead of hand-wavy.
Key Vocabulary
Server block — an Nginx configuration section (server { ... }) that defines how requests for a specific hostname and port are handled, roughly analogous to a virtual host.
“We have separate server blocks for the API subdomain and the marketing site, even though they’re served from the same Nginx instance.”
Location block — a section within a server block that matches a specific URL path pattern and defines how requests to that path are handled, such as proxying, serving static files, or redirecting.
“The /api/ location block proxies to the backend, while the / location block serves the static frontend build directly.”
Upstream — a named group of backend servers that Nginx can load balance requests across, defined once and referenced by name in proxy_pass directives.
“We defined an upstream with three backend instances, so Nginx round-robins requests across all three instead of hammering a single server.”
Reverse proxy — Nginx forwarding a client request to a backend server and returning that backend’s response to the client, as opposed to serving content itself, letting Nginx sit in front of application servers for TLS termination, caching, and load balancing. “Nginx is acting as a reverse proxy here — it terminates TLS, then forwards the plain HTTP request to the application server running on localhost.”
Directive — a single configuration instruction (proxy_pass, listen, root) that sets one specific behavior within a block, the basic building unit of an Nginx config file.
“The proxy_read_timeout directive was still set to the default sixty seconds, which was cutting off our longer-running requests.”
Common Phrases
- “Which server block is actually handling that hostname?”
- “Is this request going through the reverse proxy, or served as a static file directly?”
- “Can we add a second server to the upstream for load balancing?”
- “What does the location block for that path match — is it a prefix match or exact?”
- “Which directive controls the request timeout here?”
Example Sentences
Explaining a routing setup to a teammate:
“Nginx is set up as a reverse proxy in front of three app instances defined in an upstream block — the location block for /api/ proxies there, while everything else falls through to the static file server.”
Debugging a 504 error:
“The backend was taking longer than the default proxy_read_timeout, so Nginx was cutting the connection at sixty seconds and returning a 504 — we bumped that directive to 120 seconds for this specific location block.”
Describing a multi-site setup:
“We’re running four different sites off one Nginx instance using separate server blocks, each listening on the same port but matched by the server_name directive.”
Professional Tips
- Say server block, not “the config,” when there are multiple sites on one Nginx instance — it’s the precise unit that determines which rules apply to which hostname.
- Distinguish a location block from a server block explicitly when discussing routing — path-based rules live in location blocks, hostname-based rules live in server blocks.
- Reference the upstream by name when discussing load balancing or backend health — “the backend” is ambiguous once there’s more than one server behind it.
- Name the specific directive at fault when debugging a timeout or routing issue — “the config is wrong” is far less actionable than “the
proxy_read_timeoutdirective is too low.”
Practice Exercise
- Write a sentence explaining the difference between a server block and a location block.
- Explain what an upstream is used for.
- Describe what “Nginx acting as a reverse proxy” means in your own words.