之前大家有可能使用过CloudFlare Workers反代过任何网站。但是Workers的默认域名workers.dev被墙了,对于有些朋友而言有些不太方便。这篇文章介绍的Deno Deploy目前来说没有被墙,可以和cf workers一样,实现反代任何网站的效果。
准备材料
- GitHub 账户
免费计划限制
- 每天100,000次请求
- 每月100GB流量
- 与公共和私人仓库的Github集成
- 在所有32个地区运行
- 免费的Deno.dev子域名和自定义域名
- 自动HTTPS / TLS
- 无限的生产部署和预览
- 每个请求的CPU时间(非挂钟时间)最多为10ms
步骤
- 打开Deno Deploy,点击“Get Started”
- 登录GitHub账户,然后点击“New Project”
- 这里有三种部署方式:GitHub仓库、CLI和在线编辑。我们就使用在线编辑,点击“Play”进入编辑器
- 输入反代代码,然后点击“Save and deploy”。保存之后编辑器会像CF Workers一样会实时预览
反代代码:
import { serve } from "https://deno.land/[email protected]/http/server.ts";
async function handler(req: Request): Promise<Response> {
const url = new URL(req.url);
url.protocol = "https:"; // 传输协议
url.hostname = "example.com"; // 反代域名
url.port = "443"; // 访问端口
return await fetch(url.href, {
headers: req.headers,
method: req.method,
body: req.body,
});
}
serve(handler);