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();
        },

    });