Cloudflare Worker as a WAY

2019-08-28 18:33:04

       Cloudflare Worker,一个有点像service worker的事物,给予了在CDN边缘节点上修改请求或响应,乃至运行应用逻辑的能力。初接触到它,我的第一反应:改CORS Header的好方法?(毕竟当初写StarTrack的时候被CORS坑爆….. 大概读了一下文档,发现它提供了一个很有意思的API:Fetch。

The Fetch API provides an interface for asyncronously fetching resources by providing a definition of a request and response. You will frequently find yourself interacting with request objects included as part of a FetchEvent, making your own requests using the global fetch method, and constructing your own responses.

       换言之,它不仅可以修改,更可以自己发起请求(甚至是向不同的origin。反向代理,我首先想到的应用场景。由于我的Repo托管于Backblaze,长期只能以repo.nichi.co/files/archrepo/$arch的路径访问(难受死我这个强迫症了…… 有了Cloudflare Worker我得以在边界上重写URL,总算把Repo放到了根目录下。

       而第二个应用则是:Generic Reverse Proxy。既然可以向不同的origin发起请求,为何不可向任意origin发起?在对URL的处理上做了一些dirty hark(其实就是字符串替换….)后,我得到了一个全功能反向代理

curl -X POST https://reverse.nichi.co/httpbin.org/post -d foo=bar

       至于一个全功能反向代理能做到什么 —- Nothing, but a WAY OUT