真搞不明白 Cloudflare 的 worker 机制,之前一直正常运行,昨天发现挂了,多种尝试,仍然无法解决。
我的网站 yfaming.com 分为两个部分,其一是博客,用 Cloudflare Page 部署的,另一部分则是 lightning address server 运行在 VPS 上。
DNS 也在 Cloudflare 管理,并开启了 proxy。
然后添加了一个 worker route,它接管 yfaming.com 的全部流量。worker 是个反向代码,其代码逻辑是,根据路径前缀来决定访问 blog 对应的 Cloudflare Page,还是访问 lightning address server。
出问题的是 lightning address server。之前一直正常运行,昨天才发现挂了,期间没做任何变更。用浏览器访问对应 url,会显示 Web server is down,error code 521。
可以确定 lightning address server 本身一次正常。通过 IP 能正常访问。
问 ChatGPT,它给出的几个方案,全都无法解决。
比如在 worker 代码里改用直接 IP 访问,不行。页面会显示 Direct IP access not allowed。
又让换个域名 orig.yfaming.com,在 worker 里用这个访问,仍然不行。报错和原来是一样的,Web server is down。
用 `npx wrangler tail` 查看日志。
在 Web server is down 时,worker 拿到的 response 是 403。
用 orig.yaming.com 时,worker 拿到的 response 是 521。
这两种情况下,查 nginx 访问日志,均未发现访问记录。用 tcpdump 对 80 端口抓包,同样确认没有访问。
如果实在搞不定,只能切回传统的用 nginx 管理一切了。
只是 Cloudflare Page 还挺好用的。push 到 git 仓库后,自动部署,很方便,完全不用操心。
