Origins & the Implicit-Origin Model
On this page 4 sections
An origin is the pairing of a public hostname (such as example.com) with the address of the real web server that should answer requests for it.
You register origins once, against your cluster. The control plane then makes sure every member of the cluster has the correct entry in its configuration file the next time it subscribes.
How origins look in the config file
On the master:
[Origins]
example.com = 127.0.0.1:80
www.example.com = 127.0.0.1:80
api.example.com = 10.0.0.5:8080
On a thin client in the same cluster:
[Origins]
example.com = 203.0.113.4:8080
www.example.com = 203.0.113.4:8080
api.example.com = 203.0.113.4:8080
Notice that on the thin client, every entry points at the master's public address and QSCS port (8080 by default). This is the Implicit-Origin Model.
Why thin clients don't know the real backend
A thin client probably cannot reach the master's private origin server anyway, that server might be on a private network, behind a firewall, on the other side of the world. The thin client doesn't need to know where the origin really is; it just needs to ask the master.
QSCS writes the implicit origin entries automatically when you subscribe. If you (or an older version of the daemon) hand-wrote real backend addresses on a thin client, QSCS rewrites them at startup with a warning, so the cluster always reaches a consistent state.
The full origin entry syntax
<hostname> = <backend-host>:<backend-port> [<flag>]...
Recognised flags:
| Flag | Effect |
|---|---|
Proxy=all | Pass every request to the backend (do not try to cache by path). |
Auth=identity | Require an authenticated QSCS identity to access the origin. |
Adding or removing origins
From the control panel, edit your cluster's origin list. Then, on every node:
sudo qscs subscribe domain <cluster-tag>
sudo systemctl restart qscs
The daemon reads the new list and starts serving the new hostnames.