阿里云 函数计算 HTTP 转发
-
转发 HTTP 请求
-
链式调用的拦截器,允许跨域,路由权限控制等
- host
- connection
- content-encoding
- content-length
- date
- keep-alive
- transfer-encoding
git clone --depth=1 https://github.com/lisonge/serverless-http-forward.git
cd serverless-http-forward
pnpm i
pnpm run build
更改 config.toml 中的 forward_url
为要转发的 HTTP URL
然后把除了 .git 和 node_modules 的所有文件压缩成一个 any_name.zip
然后在 函数计算 香港地区 新建一个 node14 HTTP函数,配置函数入口 index.aliyunHandler
上传刚刚的压缩包即可部署,后续可以绑定自定义域名
当 访问 https://i.songe.li 时
会调用 阿里云的 HTTP 函数(香港地区) 转发 此 HTTP 请求
到 (上海地区)服务器的 http://47.103.215.184:8888,然后转发回复
以 较低廉/零 的价格实现 无备案域名解析到 内地服务器
或者部署在 香港地区 转发海外api, 算是一种轻量级的翻墙方式
测试访问延迟
❯ curl -o /dev/null -s -w %{time_namelookup}:%{time_connect}:%{time_starttransfer}:%{time_total} 'http://47.103.215.184:8888'
0.000018:0.052224:0.252735:0.252797%
❯ curl -o /dev/null -s -w %{time_namelookup}:%{time_connect}:%{time_starttransfer}:%{time_total} 'https://i.songe.li'
0.115642:0.159558:0.509337:0.509372%
在只作为 API 接口的情况下 延迟在可接受范围内
-
HTTP header 里 Set-Cookie 在单纯转发下将会出现问题
-
是 HTTP 转发,不是 TCP 代理,所以不支持 Websocket