Vib*_*aur 7 google-cloud-platform webpack http2 google-cloud-run http-status-code-502
我有一个与 webpack 捆绑在一起的节点应用程序,我正在尝试将其部署到云运行。为了能够在云运行中加载超过 32 MB(设定限制)的文件,我将标头('Transfer-encoding' : 'chunked')添加到 webpack 配置文件中。(该文件是一个 min.js 文件,是网站的缩小版本,在点击 url 时加载)。
在本地,一切运行正常,但是当此更改部署在云运行上时,在部署后单击应用程序 url 时会出现以下错误:
(502错误)
“上游连接错误或在标头之前断开/重置。重置原因:协议错误”
我在部署中禁用了 http2 端到端选项。
这是添加 header 的 webpack 文件
webpack.config.js
开发服务器:{
contentBase: path.resolve(__dirname, 'build'),
host: '0.0.0.0',
port: process.env.PORT || 8601,
sockPort: 'location',
disableHostCheck: true,
devServer: {
headers: {
'Transfer-encoding': 'chunked',
},
},
}
Run Code Online (Sandbox Code Playgroud)
nav*_*ule 11
我之前检查过选项“Use HTTP/2 end-to-end如果您的容器是 gRPC 流服务器或者能够直接处理 HTTP/2 明文请求,则使用”。
我这样做是出于一些故障排除的目的。在 Cloud Run 上选择Use HTTP/2 end-to-end并部署服务后,通常需要一些时间才能使这些设置生效。
因此,当您打开电源时,您可能不会预先看到故障Use HTTP/2 end-to-end。诸如gcp cloud 运行上游连接错误或在标头之前断开/重置等故障。重置原因:可能出现协议错误。
要修复此问题,请从 GCP Console 中取消选择,导航到 Cloud Run -> 您的服务 -> 编辑 -> 连接选项卡 -> Use HTTP/2 end-to-end。
然后选择该选项Serve this revision immediately并单击“部署”。
现在,您的应用程序应该按预期正常工作,如我的案例所示。
小智 1
TLDR: Check your response header for special characters.
Run Code Online (Sandbox Code Playgroud)
你好,
我们在调用 Cloud Run 实例时收到了完全相同的 502 响应,其正文为:
upstream connect error or disconnect/reset before headers. reset reason: protocol error
Run Code Online (Sandbox Code Playgroud)
我们的 Cloud Run 服务提供文档生成,其中 json 输入的属性用作文档名称的一部分。我们的响应标头包含如下标头条目:
Content-Disposition: attachment; filename=<the-attribute-value>.pdf
Run Code Online (Sandbox Code Playgroud)
我们的服务还在具有用西里尔字母书写的属性的国家/地区运行。这给我们带来了问题。
我们找到了文件名的替代方案,它独立于用户的输入。
希望有帮助!
| 归档时间: |
|
| 查看次数: |
15177 次 |
| 最近记录: |