繁体   English   中英

为运行在 Azure 上的节点应用程序启用 gzip

[英]Enable gzip for node app running on Azure

我有一个带有 React 前端的节点应用程序作为 Azure 应用程序服务在节点 14 上运行。

该应用程序包含一个中间人节点服务器(在端口 3000 上,在 express 上运行),它将所有 API 请求路由到另一个服务(a.Net 应用程序运行在一个单独的 Azure 应用程序服务上),以及一个用户与之交互的 React 前端(在端口 3001 上运行)。 一切似乎都运行良好——本地开发环境和 Azure 服务都按应有的方式处理 API 请求。

然而,仔细观察一下,似乎本地开发环境(通常在 Mac 上运行)正在压缩来自 API 的所有响应,而 Azure 服务不是 这导致中间人服务器在 Azure 中运行时发送到前端 React 应用程序的数据大小增加了约 90%,而不是在本地。 例如,我们的 API 调用之一在本地运行时返回重量约为 33kB 的响应,但相同的请求返回重量约为 500kB 的响应。

我试过指定Accept-EncodingContent-Type header,但这没有效果。

我最初的想法是 Azure 服务的配置与本地服务不同,并且 Azure 不支持 gzipping 或尚未明确启用。 或者,Azure 实例可能正在通过某种剥离内容编码标头的网关?

有没有人对我应该尝试让 Azure 发送 gzipped 响应有什么见解?

事实证明我错过了一个小(但至关重要)的步骤:在 Express 服务器上启用压缩。

安装并导入Compression package,并将以下内容添加到我们的服务器代码中解决了这个问题:

app.use(compression());

如果没有这个,本地运行的前端将提供压缩数据,而不是 Azure 部署的版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM