【发布时间】:2015-10-26 19:20:48
【问题描述】:
我收到这样的错误:
[error] 27544#0: *47335682 upstream sent too big header while reading response
header from upstream, client: 88.88.88.88, server: example..com,
request: "POST /tool/ HTTP/1.1", upstream: "http://88.88.88.88:7080/tool/",
host: "example.com"
关于这个问题,可以像这样从 nginx conf 文件中增加缓冲区大小:upstream sent too big header while reading response header from upstream
http {
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
}
location
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
(供将来参考,fastcgi_buffer_size 和 fastcgi_buffers 的默认大小为 4k 或 8k,取决于平台)
此文本出现在用户的浏览器中:Nginx 502 Bad Gateway
我打算暂时增加缓冲区大小。然后我可以在缓冲区太大时记录。是否可以找出对于上游来说太大的标头? apache_response_headers() 和 headers_list() 没有给我所有的响应头。它只给了我过期、缓存控制和杂注标头。
更改 proxy_buffer_size 会导致性能问题吗?
(nginx版本:nginx/1.6.0,php 5.4.42,xcache 3.2)
【问题讨论】:
-
查看stackoverflow.com/questions/13894386/…它应该会回答你的问题。
-
你的问题到底是什么意思?您应该如何使用 nginx 检查标头?它是一个网络服务器,而不是编辑器或流量嗅探工具。如果你想检查标题,我建议使用 tcpdump。
-
临时增加缓冲区大小并记录大标题也是一种选择。但是 php headers_list 没有给出这个数据。
-
Nginx 支持自定义 access_log 例如:*log_format combine '$remote_addr - $remote_user [$time_local] - $sent_http_set_cookie' *
-
我需要在我们的 php 代码中获取此标头数据。
标签: cakephp nginx http-headers