利用Cloudflare Pages Functions反代 实现无服务前端方案

说明

前几天我们使用文章 利用Cloudflare Pages 与 Workers 搭建无服务器前端服务 实现了Pages与Workers结合,达到无服务器效果,但是今天发现Pages 本身自带Functions可以更简单实现类似nginx反代的需求

关键代码

_worker.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
export default {
async fetch(request, env) {
const url = new URL(request.url);
const data = {
method: request.method,
headers: request.headers,
body: request.body,
}
if (url.pathname.startsWith('/sys-api/')) {
return await fetch('http://xxx-xxx.eu-west-1.elb.amazonaws.com:80' + url.pathname.replace('/sys-api/', '/') + url.search, data);
} else if (url.pathname.startsWith("/game-api/")) {
return await fetch('http://xxx-xxx.eu-west-1.elb.amazonaws.com:80' + url.pathname.replace('/game-api/', '/') + url.search, data);
}
return env.ASSETS.fetch(request);
},
}

说明