AWS Lambda函数中反向代理服务器的实现

Implementation of Reverse Proxy Server in AWS Lambda function

const app = require('express')();
const { createProxyMiddleware } = require('http-proxy-middleware');

    app.all('*', createProxyMiddleware({ target: 'https://www.google.com/', changeOrigin: true 
}));

const awsServerlessExpress = require('aws-serverless-express');
const server = awsServerlessExpress.createServer(app);

exports.handler = (event, context) => awsServerlessExpress.proxy(server, event, context);

这是我正在使用的代码。我的要求是实现反向代理服务器。问题是我在浏览器中收到以下错误:

GET http://127.0.0.1:3000/ net::ERR_CONTENT_DECODING_FAILED 200 (OK)

服务器正在正确发送响应,但存在压缩问题。

我尝试将以下 Mime 类型作为第三个参数传递给 createServer 函数:

const binaryMimeTypes = [
    'application/javascript',
    'application/json',
    'application/octet-stream',
    'application/xml',
    'font/eot',
    'font/opentype',
    'font/otf',
    'image/jpeg',
    'image/png',
    'image/svg+xml',
    'text/comma-separated-values',
    'text/css',
    'text/html',
    'text/javascript',
    'text/plain',
    'text/text',
    'text/xml'
]

const server = awsServerlessExpress.createServer(app, null, binaryMimeTypes);

但是运气不好。

谁能帮我解决这个问题?提前致谢。

我通过覆盖 Accept-Encoding header:

解决了它
app.all('*', (req, res, next) => {
    createProxyMiddleware({ target: 'https://www.google.com/', changeOrigin: true,
        onProxyReq: (proxyReq, req, res) => {
            proxyReq.setHeader('Accept-Encoding', 'identity');
        }
    })(req, res, next);
});

此解决方案未优化。由于此解决方案将发送响应 un-compressed,这将增加响应内容的长度。但现在这解决了我的问题。如果我找到任何其他解决方案,我会更新。