用CloudFlare搭建镜像站

国内访问一些在国内没有设立服务器的网站可能速度较慢或者经常连接不上,一般会找一个镜像站,但如果使用的网站比较冷门,没有其他用户搭建的镜像站的花,就需要我们自己搭建了。这里使用cloudflare works搭建一个。

创建Works

登入CloudFlare账号,创建Works,

部署反代脚本

名称可以随意填写,点击部署,然后点击修改代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
const TELEGRAPH_URL = 'https://www.youtube.com';

addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
const url = new URL(request.url);
url.host = TELEGRAPH_URL.replace(/^https?:\/\//, '');

const modifiedRequest = new Request(url.toString(), {
headers: request.headers,
method: request.method,
body: request.body,
redirect: 'follow'
});

const response = await fetch(modifiedRequest);
const modifiedResponse = new Response(response.body, response);

// 添加允许跨域访问的响应头
modifiedResponse.headers.set('Access-Control-Allow-Origin', '*');

return modifiedResponse;
}

自定义域名

youtube在cf镜像的黑名单中,把这里的url换成自己的主站,就可以成功镜像。