如何避免nginx"上游发送过大的标题"错误?

Rob*_*son 29 ruby-on-rails passenger nginx

我正在运行nginx,Phusion Passenger和Rails.

我正在遇到以下错误:

upstream sent too big header while reading response header from upstream, client: 87.194.2.18, server: xyz.com, request: "POST /user_session HTTP/1.1", upstream: "passenger://unix:/tmp/passenger.3322/master/helper_server.sock
Run Code Online (Sandbox Code Playgroud)

它是在从Facebook Connect的身份验证调用的回调中发生的.

谷歌搜索后,尝试更改包括proxy_buffer_size和large_client_header_buffers在内的nginx设置无效.

我该怎么调试呢?

Rob*_*rco 31

最近遇到了这个错误.

从Passenger 3.0.8开始,现在有一个设置允许您设置缓冲区和缓冲区大小.所以现在你可以做到

http {
    ...
    passenger_buffers 8 16k;
    passenger_buffer_size 32k;
}
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题.


Ant*_*ect 28

尝试将其添加到配置中:

http {
    ...
    proxy_buffers 8 16k;
    proxy_buffer_size 32k;
    }
Run Code Online (Sandbox Code Playgroud)

  • 当在nginx后面使用独角兽时,这肯定有帮助. (4认同)
  • @trapni可能无法回答这个问题,但也是使用nginx代理的其他人的解决方案 (2认同)

Lin*_*äck 24

也许添加它会使它工作,你如何连接到上游?http,fastcgi还是其他什么?

http {
    ...
    fastcgi_buffers 8 16k;
    fastcgi_buffer_size 32k;
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你.它对我的fastcgi实现很有用. (7认同)
  • 适用于php-fpm标题问题. (3认同)

Uni*_*ech 6

fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
Run Code Online (Sandbox Code Playgroud)