502 Bad Gateway error - 上游从上游读取响应标头时发送的标头太大
Posted
技术标签:
【中文标题】502 Bad Gateway error - 上游从上游读取响应标头时发送的标头太大【英文标题】:502 Bad Gateway error - upstream sent too big header while reading response header from upstream 【发布时间】:2019-12-09 04:14:49 【问题描述】:我在 Google App Engine 中使用 wordpress。当我创建一个 POST API 时,得到一个错误:“从上游读取响应标头时,上游发送了太大的标头”。返回 502, Bad Gateway, nginx
我在 POST API 中发送的数据(JSON)大约为 4kb。如果数据发送到 2kb 以下 API 返回成功。
我尝试了 App Engine 标准环境和柔性环境,但遇到了同样的问题。
根据此链接: upstream sent too big header while reading response header from upstream
使用缓冲区修改 nginx-app.config 文件将解决此问题。但它不起作用。
在 App Engine 中,默认的 nginx-app.config 如下所示。
location /
try_files $uri /index.php?q=$uri&$args;
location ~ ^/wp-admin
try_files $uri $uri/index.php?$args;
不确定我需要在哪里添加这些代理缓冲区。
我尝试在默认位置内添加代理缓冲区,如下所示,但没有帮助。
location /
try_files $uri /index.php?q=$uri&$args;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
请帮我解决这个问题。
【问题讨论】:
【参考方案1】:这是预期行为,因为 App Engine 的 nginx 配置使用的是 4K 的默认 proxy_buffer_size。
解决方法是发出累积低于此限制的 HTTP 标头。有一个开放的功能请求来增加这个,但它似乎不太可能增加到 128K。如果增加到 128K 是您的用例的唯一解决方案,我建议使用此 issue tracker 创建一个请求,并包括业务影响以说明对该功能的需求。
【讨论】:
感谢 Julie Wang 的回复。抱歉,我无法理解您的解决方法。我什至尝试将缓冲区值减小到 16k,但没有奏效。 如前所述,您需要减少作为一个整体低于此 4K 限制的 HTTP 标头。限制似乎与 proxy_buffer_size 有关,因此减少到 4K 应该可以让您完成 API 调用。作品中有一项功能会增加限制 8k 以允许更大的标头块,但它可能需要一个多月(或更长时间)才能推出,所以我建议在此之前使用解决方法。 我还有两个澄清。 1)实际上我发送的数据不在 HTTP Header 中,它是在 POST API Body 中发送的。 2)在灵活的环境中,即使对于 3kb 左右的数据,我也会收到此错误。在标准环境中,即使对于大于 1kb 的数据,我也会遇到错误。 如果您使用的新缓冲区配置与原始帖子不同,您能否提供它?也许有关配置的其他问题是问题所在。另外我注意到大多数其他错误示例都比提供的要长,如果您仍然遇到错误,您可以提供完整的错误消息 实际上我遇到的问题与http响应有关。我用http请求数据误解了它。感谢您对朱莉王的支持。以上是关于502 Bad Gateway error - 上游从上游读取响应标头时发送的标头太大的主要内容,如果未能解决你的问题,请参考以下文章
nginx 502 bad gateway tomcat怎么解决
当我尝试与 alexa 连接时,Ngrok 上出现错误 502 Bad Gateway
502 Bad Gateway error - 上游从上游读取响应标头时发送的标头太大