Nginx总报错upstream sent too big header的处理方法

我的软件环境是Nginx+PHP-FPM
这个问题纠缠了我好长时间,今天把nginx加上debug选项重新编译安装了一下,修改log级别为debug之后在日志里看到了原因:

tail -f /usr/local/nginx/logs/error.log

 

2012/03/30 01:54:21 [error] 19326#0: *281114 upstreamsent too big header while reading response header from upstream, client: 119.253.59.51, server: www.xxx.com, request: "GET /cron/dis HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.xxx.net"

原来是setcookie用得太多导致header过大,但是php语句又不能随便修改。

于是我在Google一番后在nginx.conf里加了如下代码:

1 client_header_buffer_size 128k;

2 large_client_header_buffers 8 64k;

  cookie再多加一起也不会超过10k 我想已经足够了吧,但是情况依旧。
  后来再次经过一番努力查找,终于找到了解决方法:

01proxy_buffer_size 64k;

02proxy_buffers 8 64k;

03proxy_busy_buffers_size 128k;

04client_header_buffer_size 64k;

05large_client_header_buffers 4 64k;

06fastcgi_connect_timeout 60;

07fastcgi_send_timeout 180;

08fastcgi_read_timeout 180;

09fastcgi_buffer_size 128k;

10fastcgi_buffers 4 256k;

11fastcgi_busy_buffers_size 256k;

12fastcgi_temp_file_write_size 256k;

13fastcgi_intercept_errors on;

posted @ 2018-03-07 15:01  屌丝的IT  阅读(882)  评论(0)    收藏  举报