gpt4 book ai didi

cakephp - Nginx 上游在从上游读取响应 header 时发送了太大的 header

转载 作者:行者123 更新时间:2023-12-02 09:50:47 26 4
gpt4 key购买 nike

我收到这样的错误:

[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

我计划暂时增加缓冲区大小。然后我可以在缓冲区太大时记录。是否有可能找出对于上游来说太大的 header ? apache_response_headers() 和 headers_list() 没有给我所有响应 header 。它只给了我过期、缓存控制和编译指示 header 。

更改 proxy_buffer_size 是否会导致性能问题?

(nginx版本:nginx/1.6.0、php 5.4.42、xcache 3.2)

最佳答案

您可以轻松地在 SO 上找到答案,但真正起作用的是单个配置选项:

http {
fastcgi_buffer_size 32k;
}

尽管如此,这个建议可能并不是您想要的。让我们详细了解为什么这有助于解决问题:

fastcgi_buffer :

Syntax: fastcgi_buffers number size;

Default: fastcgi_buffers 8 4k|8k;

Context: http, server, location

Sets the number and size of the buffers used for reading a response from the FastCGI server, for a single connection. By default, the buffer size is equal to one memory page. This is either 4K or 8K, depending on a platform.

fastcgi_buffer_size :

Syntax: fastcgi_buffer_size size;

Default: fastcgi_buffer_size 4k|8k;

Context: http, server, location

Sets the size of the buffer used for reading the first part of the response received from the FastCGI server. This part usually contains a small response header. By default, the buffer size is equal to one memory page. This is either 4K or 8K, depending on a platform. It can be made smaller, however.

因此,只有 fastcgi_buffer_size 会产生影响,因为响应 header 不适合 4KB 缓冲区。大多数情况下,这是由于 cookie 尺寸过大而发生的。因此,强烈建议保留设置不变,但减少 cookie 大小,并且只存储最少量的数据,例如 user_id、session_id,因此 cookie 存储的一般想法是用于非敏感 ID 集。有些浏览器不能很好地对待大cookie。

所以解决方案是:

1. Reduce cookie size

2. Get back to original settings

http {
fastcgi_buffers 8 4k;
fastcgi_buffer_size 4k;
}

如果在减小 cookie 大小方面遇到困难,请关闭特定位置的缓冲:

location /request {
fastcgi_buffering off;
}

关于cakephp - Nginx 上游在从上游读取响应 header 时发送了太大的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31808400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com