当客户通过 Stripe 支付后,Stripe 通过 Webhook 向我们的服务器发送支付结果通知。Stripe 的服务器在国外,而我们的服务器在中国大陆,由于网络问题,请求错误率居高不下。导致很多客户支付了费用,但不能及时获得服务,这困扰了我许久。
我尝试过挑选线路好的节点搭建中转服务器,也尝试过 Cloudflare Workers 做反向代理,但都绕不开向国内的发送http请求,还是无法解决问题。
后来我想到了 Cloudflare Tunnel,相当于在国内服务器和 Cloudflare 之间打通了一条隧道,Stripe Webhook 请求先发送到 Cloudflare,再通过隧道转发到国内服务器,果然 Stripe Webhook 的错误率很快降下来。
第二天(这个错误率统计有个周期)
我的服务是搭建在 K8s 上,这是官方文档 使用 cloudflared 将 Kubernetes 应用程序暴露在互联网上
按照这个思路,其实 Cloudflare Tunnel 能解决很多问题,比如优化国内网站在海外的访问速度。