Node.js 谷歌应用程序引擎标准没有';t压缩我的Next.js/Express应用程序

Node.js 谷歌应用程序引擎标准没有';t压缩我的Next.js/Express应用程序,node.js,express,google-app-engine,next.js,Node.js,Express,Google App Engine,Next.js,我正试图找出如何让Google App Engine(标准版)将压缩应用到我的Next.js/Node.js/Express应用程序的输出 据我所知,问题是 1) Google的负载平衡器删除所有表示客户端支持请求压缩的元标记,因此app.use(compression())在server.js中不会做任何事情。我曾尝试使用{filter:shouldCompress}函数强制压缩,但似乎并不重要,因为谷歌的前端仍然返回未压缩的结果。(局部压缩效果良好。) 2) 谷歌的负载平衡器如何以及何时选择

我正试图找出如何让Google App Engine(标准版)将压缩应用到我的Next.js/Node.js/Express应用程序的输出

据我所知,问题是

1) Google的负载平衡器删除所有表示客户端支持请求压缩的元标记,因此
app.use(compression())
server.js
中不会做任何事情。我曾尝试使用
{filter:shouldCompress}
函数强制压缩,但似乎并不重要,因为谷歌的前端仍然返回未压缩的结果。(局部压缩效果良好。)

2) 谷歌的负载平衡器如何以及何时选择应用压缩对我来说是个谜。(特别是,为什么不告诉我愚蠢但庞大的
应用程序/javascsript
内容:)

以下是他们在文件中所说的:

如果客户端发送HTTP头,原始请求指示 客户端可以接受压缩(gzip)内容,应用程序引擎 自动压缩处理程序响应数据并附加 适当的响应头。它使用接受编码和 用户代理请求标头,以确定客户端是否可以可靠地 接收压缩响应。

就是这样。我很想在这个项目中使用App Engine,但是当index.js是700KB而不是压缩的200KB时,它有点像一个showstepper。

根据for Node.js,出于安全目的,从请求中删除Accept Encoding头

注意:实体头(与请求主体相关的头)未经过清理或检查,因此应用程序不应依赖它们。特别是,Content-MD5请求头未经修改就发送到应用程序,因此可能与内容的MD5哈希不匹配。此外,服务器不检查内容编码请求头,因此如果客户端发送gzip请求体,它将以压缩形式发送到应用程序

还请注意以下答复:

今天,我们没有通过
Accept Encoding
头,因此您的中间件不可能决定它应该压缩

我们将在新的几周内对此进行修复


好的,很酷很好的信息!您是否了解前端检查哪些服务器响应头以得出自动gzip的结论?