main.ts
await app.register(nodeNetProxy, {
upstream: '',
replyOptions: {
getUpstream: (originalReq, base) => {
const host = originalReq?.query['host'] || 'v3-fxg.douyinvod.com';
return `http://${host}`
}
},
disableCache: true,
cacheURLs: 0,
// 请求路径前缀
prefix: '/proxy',
preHandler: (request, reply, done) => {
// 设置自定义请求头
const keys = ['accept-language', 'connection', 'user-agent', 'accept'];
Object.keys(request.headers).forEach((key) => {
if (keys.includes(key)){
return;
}
delete request.headers[key];
})
request.headers['host'] = request.query['host'] || 'v3-fxg.douyinvod.com';
// 设置跨域
reply.header('Access-Control-Allow-Origin', '*');
reply.header('Cross-Origin-Resource-Policy', 'cross-origin');
done();
},
});