From e7e4ee58ef751152c908a5bf624adc0e39d493e8 Mon Sep 17 00:00:00 2001 From: hoelee Date: Tue, 29 Sep 2026 01:14:17 +0800 Subject: [PATCH] =?UTF-8?q?Add=20post:=20The=20Forward-Auth=20Gate=20That?= =?UTF-8?q?=20Verified=20Perfectly=20=E2=80=94=20and=20Wasn't=20Live=20(EN?= =?UTF-8?q?=20+=20ZH)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...authentik-forward-auth-gate-wasnt-live.png | Bin 0 -> 100786 bytes ...authentik-forward-auth-gate-wasnt-live.png | Bin 0 -> 48283 bytes .../authentik-forward-auth-gate-wasnt-live.md | 242 ++++++++++++++++++ .../authentik-forward-auth-gate-wasnt-live.md | 242 ++++++++++++++++++ 4 files changed, 484 insertions(+) create mode 100644 public/banners/authentik-forward-auth-gate-wasnt-live.png create mode 100644 public/og/authentik-forward-auth-gate-wasnt-live.png create mode 100644 src/content/posts/authentik-forward-auth-gate-wasnt-live.md create mode 100644 src/content/posts/zh/authentik-forward-auth-gate-wasnt-live.md diff --git a/public/banners/authentik-forward-auth-gate-wasnt-live.png b/public/banners/authentik-forward-auth-gate-wasnt-live.png new file mode 100644 index 0000000000000000000000000000000000000000..a7930ad98524fe1316ee9780b45f36a6f41ac492 GIT binary patch literal 100786 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 z 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

>Qh}R^<8xxUgie--lRB(*p0~#4vXrG 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 bQ7Iq*G2;Zh2T(r$OYxKtkrA#G)b;y6p?Fh+ literal 0 HcmV?d00001 diff --git a/public/og/authentik-forward-auth-gate-wasnt-live.png b/public/og/authentik-forward-auth-gate-wasnt-live.png new file mode 100644 index 0000000000000000000000000000000000000000..4fbc36a0f0e9f11e3a1bc693917231f79768f799 GIT binary patch literal 48283 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:Mc3;!HBy(1^dXG0M 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 %{redirect_url}' \ + -H 'Host: app.example.com' https://localhost/ +# 302 -> https://app.example.com/outpost.goauthentik.io/start?rd=... +``` + +This is a *good* check. It proves the nginx vhost serves the outpost, that the outpost recognises the hostname, that the provider is linked to the application, and that the login flow is alive. Everything I had configured was proven correct in one command. + +It says nothing whatsoever about whether public traffic reaches that vhost. + +Here's why. My hostnames are served by **two** independent ingress paths: + +| Path | What serves it | Where it lands | +|---|---|---| +| Home IP → nginx (443) | the vhost I edited | the outpost ✅ | +| Cloudflare Tunnel (`cloudflared`) | a rule inside the tunnel's own config | the app's port, directly ❌ | + +The tunnel's ingress is a small ordered list evaluated per hostname: + +``` +app.example.com -> http://app-container:8080 ← straight to the app +* -> http_status:404 +``` + +That rule was written years earlier, when the goal was simply "make this reachable". It never mentioned nginx, because it never needed to. So my beautiful vhost sat off to the side of the real request path, gating a route that public traffic doesn't take. + +The two paths even answer on the same hostname, so nothing about the URL hints at the difference. + +**What finally made it obvious was a response header.** The gated check returned `x-powered-by: authentik`. The public check returned `x-powered-by: Express`. Same URL, same second, two different servers answering. When you suspect you're looking at the wrong layer, read the headers — they name the software that answered, which is exactly the question you're asking. + +To see your own tunnel's rules rather than guessing (Cloudflare's API, not the dashboard): + +```bash +curl -s "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/cfd_tunnel/$TUNNEL_ID/configurations" \ + -H "Authorization: Bearer $CF_TOKEN" \ + | python -c "import sys,json; [print(r.get('hostname','*'), '->', r.get('service','')) for r in json.load(sys.stdin)['result']['config']['ingress']]" +``` + +``` +git.example.com -> http://192.168.1.6:6880 +app.example.com -> http://app-container:8080 +bot.example.com -> http://bot-container:8080 +* -> http_status:404 +``` + +There it is, in one line, after a day of looking at nginx. + +### The permission wall on the way to the fix + +Editing that rule needs a token with **Account → Cloudflare Tunnel → Edit**. Mine didn't have it, and no zone-scoped token can substitute: tunnels are account-scoped objects, so a Zone-scoped token fails the *read* as well, with `1001 Not authorized`. If you only have zone-level tokens, open the dashboard instead: **Zero Trust → Networks → Tunnels → your tunnel → Public Hostnames** and change the rule's service to your outpost. + +For me the correct target was the outpost on the same Docker network as `cloudflared`: + +``` +app.example.com -> http://authentik-server:9000 +``` + +The outpost reads the `Host` header (which the tunnel preserves) to pick the application, then proxies to the internal host from the provider config. That's the whole change: one service value. Everything I'd built in authentik was already correct — it was simply never on the path. + +## Optional SSO: gate the UI, leave the API alone + +Once the gate is really in front of the traffic, the next problem is the API. A hostname-level gate can't tell a script from a browser, so token-only API calls get redirected to a login page — they don't fail with a JSON error, they get HTML. + +If you want SSO for humans and no SSO for machines, authentik's proxy provider has a per-path exemption. The UI calls it **Unauthenticated Paths**; the API field is `skip_path_regex`: + +```json +{"skip_path_regex": "^/api/.*"} +``` + +Verified result on my instance, same hostname, same session: + +| Request | No session | Result | +|---|---|---| +| `/` and `/dashboard` | yes | `302` → authentik login | +| `/api/v1/health` | yes | `200` from the app | +| `/api/v2/tables/.../records` + API token | yes | `200` with real data | + +Two caveats worth knowing before you rely on it. This exemption applies at the outpost, so unlike a path split at the CDN it works on **every** ingress path. And it is not per-user: the gate applies to the request, not the person. There is no "some users can skip SSO" — either a path is exempt for everyone, or everyone needs a session. + +I used a simpler form of the same idea first: **move every machine caller off the public hostname before the gate exists.** My automation was calling the app through the public URL and being routed out to Cloudflare and back into my own network for no reason. Pointing it at the container name (`http://app-container:8080`) shortened the path, removed a failure mode, and meant the gate couldn't break it. If a login wall takes down your integration, the integration was depending on the door being unlocked. + +## The honest part: this is not single sign-on + +I have to be straight about what a forward-auth gate gives you, because "SSO" oversells it. + +The outpost knows who you are. The app does not. Unless the app can consume an upstream identity — header-based auth, or native OIDC/SAML — it will show its own login form after the gate lets you through. So the user experience is: authentik login, then the app's login. + +For a user who is already signed in to authentik, the first step is often silent. But it's still two systems, two session lifetimes, and two places a password can be wrong. In my case the app has no header auth and its own OIDC is a licensed feature, so the gate would have been an **extra** door bolted in front of the existing one — no reduction in logins at all. + +That's a legitimate trade for some setups: keep the app's login for its own users, and stop the internet from reaching the login form. It's a poor trade if what you actually wanted was "my team types one password". Which meant the honest answer for me was to turn the whole thing back off. + +## Reverting it properly (and the arithmetic that saved ten other apps) + +Undoing the gate is where I nearly caused a much bigger outage than the one I was preventing. + +The nginx change was one line in a large generated vhost file. The obvious revert is to substitute the port back: + +```bash +# DON'T — this is the version that would have hurt +sed -i 's#proxy_pass http://localhost:10000;#proxy_pass http://localhost:10380;#' vhost.conf +``` + +Before running it, I counted how many server blocks point at that same port: + +```bash +grep -c 'proxy_pass http://localhost:10000;' vhost.conf +# 11 +``` + +Eleven. My app was one of them. **Ten other applications are gated through that outpost**, and a blanket substitution would have silently un-gated every one of them at once — including the ones doing real authentication work. The "fix" would have looked successful and removed authentication from most of my homelab. + +What I did instead: + +1. **Snapshot the current state first**, so the revert was itself reversible: `cp -a vhost.conf vhost.conf.bak-$(date +%Y%m%d-%H%M)-revert`. +2. **Find the exact line by diffing against the backup taken before the original change.** That diff showed one changed line, which is proof of exactly how much I had touched. +3. **Edit that line only**, then re-diff against the original backup and require the result to be identical before going further. +4. **Update the second file** that mirrors the same setting — the NAS's own reverse-proxy database, which regenerates the vhost on DSM events. I edited the single key and asserted the hostname before writing, never restoring the whole file. +5. `nginx -t` then reload. + +And then a detail that cost me another twenty minutes of doubt: + +```bash +nginx -s reload && sleep 2 && curl -sk -H 'Host: app.example.com' https://localhost/ +# still 302 -> /outpost.goauthentik.io/start +``` + +The revert looked like it had failed. It hadn't. A request issued microseconds after the reload can still be answered by the old worker while it drains. The re-test a few seconds later returned `200 x-powered-by: Express` — direct to the app, gate gone. + +**If a config change appears not to apply, re-test after a beat before you go looking for a second cause.** With a request that fast, "the config is wrong" and "the old process is still answering" are indistinguishable. + +## What I'd do differently + +1. **Enumerate every ingress path for a hostname before building anything on top of it.** My checklist is now four questions, asked in this order: + - Is the hostname proxied by a CDN/tunnel? If yes, its rules are the real ones — check them first, not last. + - What does the reverse proxy vhost say? + - Does the platform mirror that vhost somewhere else that can regenerate it? + - Is there another hop (VPS, second proxy, vendor tunnel) with its own copy of the routing table? +2. **Verify from outside, and verify which software answered.** `curl` from the host with a `Host:` header proves your config is *self-consistent*. Only a request from the public internet, plus `x-powered-by`/`server` headers, proves it's *in force*. +3. **Find out whether the app can consume an upstream identity before you build the gate.** If it can't, you're adding a login, not removing one — a decision to make deliberately, not to discover afterwards. +4. **Count before you substitute.** Any port or hostname you're replacing globally probably appears in more places than you think. `grep -c` costs a second and prevents an outage. +5. **Snapshot, diff, edit one line, re-diff.** The backup's only job is to answer "how much did I change?" — and a diff answers it exactly. + +## The result + +The gate worked. It was also invisible to every real user, and after working out what it actually delivered — a second login in front of an app that already had one — I turned it off again: one field cleared, one application unlinked, one line restored, verified by a request from outside my network. + +The two checks that would have caught the whole thing on day one take about thirty seconds: + +```bash +curl -sI https://app.example.com/ | grep -i '^x-powered-by' # who is actually answering? +curl -s https://app.example.com/ -o /dev/null -w '%{http_code}\n' # what does a stranger get? +``` + +If the answer isn't what your configuration says it should be, you're editing the wrong layer. That's worth knowing before you spend the day on it — and definitely before you tell anyone the gate is live. + +--- + +## Want this for your business? + +If you need single sign-on in front of internal tools, a self-hosted app exposed safely to the internet, or someone to audit which ingress path is actually serving your domains, that's the work I do. + +- **WhatsApp:** [011-797 2969](https://wa.me/60127972969) — tap to chat +- **Email:** [me@hoelee.com](mailto:me@hoelee.com?subject=Reverse%20proxy%20%26%20SSO%20enquiry) +- **Website:** [hoelee.com](https://www.hoelee.com) + +I set up authentik single sign-on, hardened reverse proxies and Cloudflare tunnels, and self-hosted Docker stacks for small businesses in Malaysia — and I write up what I learn while doing it. diff --git a/src/content/posts/zh/authentik-forward-auth-gate-wasnt-live.md b/src/content/posts/zh/authentik-forward-auth-gate-wasnt-live.md new file mode 100644 index 0000000..06da22c --- /dev/null +++ b/src/content/posts/zh/authentik-forward-auth-gate-wasnt-live.md @@ -0,0 +1,242 @@ +--- +title: "验证完全正确的 Forward-Auth 网关——其实并未上线" +description: "我的 authentik forward-auth 网关在宿主机上返回了干净的 302 跳转到登录页,公网 URL 却仍然直接服务应用。这个主机名有两条入口层,而我只改了其中一条。" +pubDate: 2026-09-29 +category: devops +tags: ["authentik", "forward-auth", "cloudflare", "nginx", "docker", "self-hosting"] +ogImage: /og/authentik-forward-auth-gate-wasnt-live.png +banner: /banners/authentik-forward-auth-gate-wasnt-live.png +draft: false +--- + +网关搭好了,检查也跑了,通过了。 + +``` +HTTP/1.1 302 Found +location: https://app.example.com/outpost.goauthentik.io/start?rd=... +x-powered-by: authentik +``` + +未认证的请求被推到了我的 authentik 登录页。带品牌定制、正确、可用。我正准备继续下一件事——除了我自己有一条规矩:任何面向用户的东西,都要用用户的方式去访问它,也就是从外部、走公网。于是我照做了。 + +``` +GET https://app.example.com/ → 200 +x-powered-by: Express +``` + +应用直接应答了。没有登录页、没有重定向、没有网关。完全同一个主机名,一条请求路径被拦住了,另一条门户大开——取决于请求是从哪里进入我的网络的。 + +这就是我的一整天:问题不在 SSO 配置——那是好的——而在于这个事实:**一个主机名可以由不止一层入口来服务,而我只拦截了其中一层**。 + +## 为什么这不只是我这一个应用的事 + +如果你自托管的东西在隧道、反向代理或两者后面,你多半已经做过这个假设:*「服务我域名的是反向代理。」*这个假设一直成立,直到它不再成立,而且它失效的方向最危险——你改的一切看起来都是对的,因为你检查的那条路径确实是对的。 + +这种失效模式天生就是无声的。没有报错、没有日志行、没有任何提示。你的配置检查能通过,是因为你检查的正是你自己改过的那份配置。而真正的流量——你想要保护的流量——根本不会碰到它。 + +事后我在同一台宿主机上又发现了两个同样的网关,带着同样的潜在问题,用同样的方式搭建,等着某个信任它们的人。 + +## 背景:给一个没有 SSO 的应用加 SSO + +这个应用是我 NAS 上的一个自托管数据库界面(Docker,发布在宿主端口上,位于 nginx 和 Cloudflare Tunnel 后面——我家实验室的常见形态)。我想在它前面加一道登录墙,让「能从公网访问得到」不再意味着「任何人猜中主机名就能看到登录表单、开始猜密码」。 + +应用自己的文档宣称支持 SSO。我会把这篇的重点放在入口陷阱上,许可的故事放到另一篇里讲,但简要版本是:宣传的 SSO 是付费许可功能,开源构建带有代码路径但不带使用许可,而过去填补这个空白的社区 fork 已经两年没人维护了。二十分钟调研、两个被放弃的方案、一个结论:**这个应用永远不会为我做 SSO,所以网关必须放在它前面。** + +这是件正常且早已被反复实践过的事。authentik 管它叫 proxy provider,流程是: + +1. **一个 login flow**——给这个应用用的,有自己的标题、自己的背景,这样落到登录页的用户知道自己是在为哪个系统做认证。 +2. **一个 proxy provider**——这个对象知道应用的外部主机名(`https://app.example.com`)和内部地址(`http://app-container:8080`)。 +3. **一个 application**——把两者关联起来,挂在内置 outpost 上。outpost 才是真正接收流量、检查会话、并在登录后把请求代理到应用内部主机的组件。 +4. **入口(ingress)**——把那个主机名指向 outpost 而不是应用。 + +第 1–3 步都在 authentik 里,属于配置。第 4 步决定这一切是否真实有效,而我恰恰错在这一步。 + +第 1–3 步还有两个小坑,因为它们浪费过我的时间: + +**对 proxy provider 做部分 PATCH 会被拒绝。**只更新一个字段就会返回: + +```json +{"internal_host": ["Internal host cannot be empty when forward auth is disabled."]} +``` + +serializer 会重新校验整个对象,而一个没有 internal host 的 proxy provider 是无效的——所以只更新一个字段会失败,就像你清空了一个根本没碰过的字段一样。把标识字段和你正在改的字段一起发送: + +```bash +curl -s -X PATCH "$AUTH/api/v3/providers/proxy/$PK/" \ + -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \ + -d '{"mode":"proxy","external_host":"https://app.example.com", + "internal_host":"http://app-container:8080","skip_path_regex":""}' +``` + +**authentik API token 可能在会话中途过期。**正常用了一个小时后,每个调用都开始返回 `403 {"detail":"Token invalid/expired"}`。注意这个状态码:`403` 的意思是「我们知道你是谁,但你不能这么做」——只有响应体才会告诉你 token 已经死了。如果你在脚本里缓存了 token,当调用开始失败时,去数据库里重新读一次,而不要假定是权限问题。 + +## 陷阱:我验证的是我改过的那一层 + +这是我运行的检查,在宿主机本机: + +```bash +curl -sk -o /dev/null -w '%{http_code} -> %{redirect_url}' \ + -H 'Host: app.example.com' https://localhost/ +# 302 -> https://app.example.com/outpost.goauthentik.io/start?rd=... +``` + +这是一个*好*检查。它证明了 nginx 的 vhost 在服务 outpost、outpost 认得这个主机名、provider 已经关联到 application、login flow 是活的。我配置的一切,一条命令就全部证明了是正确的。 + +但它对「公网流量是否真的到达那个 vhost」什么都证明不了。 + +原因如下。我的主机名由**两条**相互独立的入口路径服务: + +| 路径 | 谁在服务它 | 落在哪里 | +|---|---|---| +| 家里 IP → nginx (443) | 我改过的那个 vhost | outpost ✅ | +| Cloudflare Tunnel (`cloudflared`) | 隧道自身配置里的一条规则 | 直连应用的端口 ❌ | + +隧道的 ingress 是一个按主机名求值的小型有序列表: + +``` +app.example.com -> http://app-container:8080 ← straight to the app +* -> http_status:404 +``` + +那条规则是几年前写的,当时的目标只是「让它能被访问到」。它从来没提过 nginx,因为没必要。于是我漂亮的 vhost 就待在真实请求路径的旁边,拦截着一条公网流量根本不走的路线。 + +两条路径甚至在同一个主机名上应答,所以 URL 上没有任何线索暗示这中间的差别。 + +**最后让问题暴露出来的是一个响应头。**被拦截的那次检查返回 `x-powered-by: authentik`,公网那次返回 `x-powered-by: Express`。同一个 URL、同一秒钟,两个不同的服务器在应答。当你怀疑自己盯错了层时,去读响应头——它们会说出应答的软件是谁,而这正是你想问的问题。 + +与其靠猜,不如直接看自己隧道的规则(用 Cloudflare 的 API,而不是控制台): + +```bash +curl -s "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/cfd_tunnel/$TUNNEL_ID/configurations" \ + -H "Authorization: Bearer $CF_TOKEN" \ + | python -c "import sys,json; [print(r.get('hostname','*'), '->', r.get('service','')) for r in json.load(sys.stdin)['result']['config']['ingress']]" +``` + +``` +git.example.com -> http://192.168.1.6:6880 +app.example.com -> http://app-container:8080 +bot.example.com -> http://bot-container:8080 +* -> http_status:404 +``` + +看了一整天 nginx 之后,答案就躺在一行里。 + +### 通往修复路上的权限墙 + +编辑那条规则需要一个带 **Account → Cloudflare Tunnel → Edit** 权限的 token。我的没有这个权限,而且任何 zone 级 token 都无法替代:隧道是 account 级的对象,所以 Zone 级的 token 连*读取*都会失败,报 `1001 Not authorized`。如果你只有 zone 级 token,那就改用控制台:**Zero Trust → Networks → Tunnels → 你的隧道 → Public Hostnames**,把规则的 service 改成你的 outpost。 + +对我来说,正确的目标是与 `cloudflared` 同处一个 Docker 网络的 outpost: + +``` +app.example.com -> http://authentik-server:9000 +``` + +outpost 读取 `Host` 头(隧道会原样保留它)来选择 application,然后按 provider 配置里的内部主机做代理。整个改动就这么点:一个 service 值。我在 authentik 里搭的一切本来都是对的——只是从来不在那条路径上。 + +## 可选 SSO:拦住界面,放行 API + +当网关真正挡在流量前面之后,下一个问题就是 API。主机名级的网关分不清脚本和浏览器,所以只带 token 的 API 调用会被重定向到登录页——它们不会以 JSON 报错失败,而是收到一页 HTML。 + +如果你想要人类走 SSO、机器不走 SSO,authentik 的 proxy provider 提供一个按路径豁免的配置。界面里叫 **Unauthenticated Paths**;API 字段是 `skip_path_regex`: + +```json +{"skip_path_regex": "^/api/.*"} +``` + +在我自己的实例上验证的结果,同一主机名、同一会话: + +| 请求 | 无会话 | 结果 | +|---|---|---| +| `/` 和 `/dashboard` | 是 | `302` → authentik 登录页 | +| `/api/v1/health` | 是 | `200`,来自应用 | +| `/api/v2/tables/.../records` + API token | 是 | `200`,带真实数据 | + +在依赖它之前,有两个值得知道的注意事项。这个豁免在 outpost 层生效,所以和 CDN 上的路径拆分不同,它在**每一条**入口路径上都有效。而且它不是按用户区分的:网关作用在请求上,而不是人身上。不存在「某些用户可以跳过 SSO」——要么一条路径对所有人豁免,要么所有人都需要会话。 + +我先是用了同一个思路的更简单版本:**在网关存在之前,把所有机器调用者从公网主机名上移走。**我的自动化之前一直通过公网 URL 调用应用,毫无必要地被路由到 Cloudflare 再绕回我自己的网络。把它指向容器名(`http://app-container:8080`)缩短了路径、去掉了一种失效模式,也意味着网关不可能弄坏它。如果一道登录墙就能让你的集成瘫痪,那说明这个集成本来就在依赖门是开着的。 + +## 实话实说:这不是单点登录 + +关于 forward-auth 网关到底给了你什么,我得直说,因为「SSO」这个词把它说大了。 + +outpost 知道你是谁,应用不知道。除非应用能够消费上游身份——基于 header 的认证,或原生的 OIDC/SAML——否则网关放你进来之后,它还是会显示自己的登录表单。所以用户体验是:先登录 authentik,再登录应用。 + +对已经登录 authentik 的用户来说,第一步常常是静默的。但它依然是两套系统、两个会话生命周期、两处可能输错密码的地方。就我而言,应用没有 header 认证,它自己的 OIDC 又是付费许可功能,所以这道网关只是在原有那扇门前面外加了一道——登录次数一点都没减少。 + +对某些部署来说,这是一笔划算的交易:保留应用自己的登录给它的用户,同时让公网接触不到登录表单。但如果你真正想要的是「我的团队只输一次密码」,那就是一笔糟糕的交易。所以对我来说,诚实的答案是把整个东西重新关掉。 + +## 正确地回滚(以及救下另外十个应用的算术) + +拆除网关这一步,我差点造成比我想防止的故障大得多的宕机。 + +nginx 的改动是一个大型生成 vhost 文件里的一行。最直接的回滚就是把端口换回去: + +```bash +# DON'T — this is the version that would have hurt +sed -i 's#proxy_pass http://localhost:10000;#proxy_pass http://localhost:10380;#' vhost.conf +``` + +在运行之前,我数了数有多少个 server block 指向同一个端口: + +```bash +grep -c 'proxy_pass http://localhost:10000;' vhost.conf +# 11 +``` + +11 个。我的应用只是其中之一。**另外还有十个应用都经由那个 outpost 被网关拦着**,一次无差别的替换会同时悄悄拆掉它们所有人的门——包括那些在做真实认证工作的应用。这个「修复」看起来会像是成功的,同时却会拆掉我家实验室大部分认证。 + +我实际做的是: + +1. **先给当前状态拍快照**,让回滚本身也可回滚:`cp -a vhost.conf vhost.conf.bak-$(date +%Y%m%d-%H%M)-revert`。 +2. **拿原始改动前做的备份来 diff,找到确切的那一行。**那次 diff 只显示了一行改动,正好证明我到底动过多少。 +3. **只编辑那一行**,然后重新和原始备份 diff,要求结果与备份完全一致再继续。 +4. **更新第二个文件**——它镜像同一份设置:NAS 自己的反向代理数据库,会在 DSM 事件发生时重新生成 vhost。我只编辑了那一个键,写入前断言了主机名,绝不整文件恢复。 +5. `nginx -t`,然后 reload。 + +然后还有一个让我又怀疑了二十分钟的细节: + +```bash +nginx -s reload && sleep 2 && curl -sk -H 'Host: app.example.com' https://localhost/ +# still 302 -> /outpost.goauthentik.io/start +``` + +回滚看起来像是失败了。其实没有。reload 后几微秒发出的请求,仍可能由正在排空(draining)的旧 worker 应答。几秒后的重测返回 `200 x-powered-by: Express`——直连应用,网关消失了。 + +**如果配置改动看起来没有生效,先停一拍再重测,然后再去找第二个原因。**在这种速度的请求面前,「配置错了」和「旧进程还在应答」根本无法区分。 + +## 我会怎么做不同 + +1. **在为某个主机名搭建任何东西之前,先列出它的每一条入口路径。**我的检查清单现在有四问,按这个顺序问: + - 这个主机名是否经过 CDN/隧道代理?如果是,它们的规则才是真正起作用的——先查它们,不要留到最后。 + - 反向代理的 vhost 说了什么? + - 平台是否在别处镜像了这个 vhost、并且可能重新生成它? + - 是否还有另一个跳点(VPS、第二层代理、厂商隧道)带着一份自己的路由表副本? +2. **从外部验证,并且验证是哪个软件应答的。**在宿主机上用带 `Host:` 头的 `curl` 只能证明你的配置*自洽*。只有来自公网的请求,再加上 `x-powered-by`/`server` 响应头,才能证明它*真的在生效*。 +3. **在搭建网关之前,先搞清楚应用能否消费上游身份。**如果不能,你是在加一道登录而不是减一道——这是个要主动做的决定,而不是事后才发现的问题。 +4. **替换之前先数一数。**任何你要全局替换的端口或主机名,出现的次数很可能比你想象的多。`grep -c` 只花一秒钟,却能避免一次宕机。 +5. **快照、diff、只改一行、再 diff。**备份的唯一职责是回答「我改了多少?」——而一次 diff 就能精确地回答它。 + +## 结果 + +网关是能工作的。但它对每个真实用户都不可见,而在我搞清楚它实际交付了什么——在一个本来就有一道登录的应用前面又加了一道——之后,我把它重新关掉了:清空一个字段、取消关联一个 application、恢复一行配置,用一次来自我网络之外的请求做了验证。 + +两个第一天就能揪出整个问题的检查,大约只要三十秒: + +```bash +curl -sI https://app.example.com/ | grep -i '^x-powered-by' # who is actually answering? +curl -s https://app.example.com/ -o /dev/null -w '%{http_code}\n' # what does a stranger get? +``` + +如果答案和你配置里说的对不上,那你就是在改错误的层。这值得在你为此花掉一整天之前就知道——更不用说在告诉任何人网关已上线之前了。 + +--- + +## 需要为你的业务做这件事吗? + +如果你需要在内部工具前面加单点登录、把自托管的应用安全地暴露到公网,或者需要有人审计到底是哪条入口路径在真正服务你的域名——这正是我在做的工作。 + +- **WhatsApp:** [011-797 2969](https://wa.me/60127972969) —— 点击对话 +- **Email:** [me@hoelee.com](mailto:me@hoelee.com?subject=Reverse%20proxy%20%26%20SSO%20enquiry) +- **网站:** [hoelee.com](https://www.hoelee.com) + +我为马来西亚的中小企业搭建 authentik 单点登录、加固反向代理和 Cloudflare 隧道、自托管 Docker 环境——并把过程中学到的东西写下来。 \ No newline at end of file