Jelia.nyc

Jelia.nyc / Proof / Hosts behind one edge

PROOF · HOSTS

156 hosts, one front door

Every site and application on this estate answers through a single nginx edge. One place terminates TLS, applies the rules and writes the logs, so there is one thing to get right instead of 156.

What the number means

A host, here, is a name people can reach: a website, a web app, a webmail front end, a list archive, a monitoring page. There are 156 of them on this estate, and every one sits behind the same edge — a single nginx server that receives the request, handles the encryption and passes it to whatever is actually doing the work.

The count matters less than the shape. A hundred and fifty-six hosts each exposed in their own way would be 156 sets of certificates, 156 firewall exceptions and 156 places to forget a security header. A hundred and fifty-six hosts behind one edge is one configuration pattern, applied 156 times.

What sits behind it

156public hosts, all answering through one nginx edge
Oneplace where TLS is terminated for every site and app
Per-siteaccess and error logs, so one noisy site does not hide another
Containersfor each service, reachable only through the edge

The whole estate runs on one Linux server I own: eight cores, 32 GB of memory. Each service — mail, files, identity, video, chat, publishing, monitoring, analytics — runs in its own container. The containers are not published to the internet directly. The edge is the only thing that is, and it decides what reaches them.

That edge does four jobs. It terminates TLS, so certificates live in one place and renew in one place. It applies a shared set of security rules — headers, request limits, what is and is not allowed through — to every host by default. It writes separate logs for each site, which makes investigating a problem a matter of reading one file rather than searching through everything. And for applications with no login of their own, it sends the visitor through the single sign-on first.

How it is kept that way

  1. New hosts start from the pattern. A new site is not a fresh configuration. It inherits the shared rules, gets its own logs and its certificate, and is then adjusted only where it genuinely differs.
  2. Configuration lives in version control. Server changes are committed and pushed, so there is a history of what changed, when, and why — and a way back.
  3. Every change is tested before reload. The configuration is validated first. A typo should fail a test, not take 156 sites down.
  4. Checked from the outside. Every host is probed every five minutes for real page content, and a daily scripted check runs across the estate. A site answering with a blank page or the wrong site is caught, not just a site that is down.
  5. Container names kept unambiguous. When many services share one network, naming discipline matters. Two services answering to the same name is the kind of fault that looks random until you know to look for it.

Why it matters for you

Most estates I look at grew one service at a time, each with whatever exposure was easiest that week. The result is certificates expiring on hosts nobody remembers, admin panels reachable from anywhere, and no single place to answer the question "what do we actually have on the internet?"

A single edge does not suit everything. Very large or globally distributed services want load balancers, a CDN or a managed gateway, and paying for those is the right call at that scale. But for most organisations' own sites and internal tools, one well-run edge is cheaper, easier to reason about, and much easier to audit.

Questions people ask

Is one edge a single point of failure?

Yes, and that is a trade-off to make with your eyes open. The answer is monitoring that reaches a human, configuration that can be rebuilt from version control, and backups — or a second edge where the business case justifies it.

Can this sit in front of applications we do not control?

Usually. The edge only needs to reach the application. It can add TLS, logging and a login in front of software that was never built with any of them.

Does it have to be nginx?

No. Other reverse proxies do the same job well. What matters is having one, configured consistently, rather than which one it is.