上游太大- nginx + codeigniter

7hiiyaii  于 12个月前  发布在  Nginx
关注(0)|答案(7)|浏览(169)

我从Nginx得到这个错误,但似乎不能弄清楚!我使用codeigniter和使用会话的数据库.所以我想知道头怎么会太大.有没有办法检查头是什么?或者可能看看我可以做什么来修复这个错误?
让我知道如果你需要我把任何配置文件或什么,我会更新,因为你的要求他们

2012/12/15 11:51:39 [error] 2007#0: *5778 upstream sent too big header while reading response header from upstream, client: 24.63.77.149, server: jdobres.xxxx.com, request: "POST /main/login HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "jdobres.xxxxx.com", referrer: "http://jdobres.xxxx.com/"

字符串

更新

我在conf中添加了以下内容:

proxy_buffer_size   512k;
proxy_buffers   4 512k;
proxy_busy_buffers_size   512k;


现在我仍然得到以下内容:

2012/12/16 12:40:27 [error] 31235#0: *929 upstream sent too big header while reading response header from upstream, client: 24.63.77.149, server: jdobres.xxxx.com, request: "POST /main/login HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "jdobres.xxxx.com", referrer: "http://jdobres.xxxx.com/"

u0sqgete

u0sqgete1#

将其添加到nginx.conf文件的http {}中,该文件通常位于**/etc/nginx/nginx.conf**:

proxy_buffer_size   128k;
proxy_buffers   4 256k;
proxy_busy_buffers_size   256k;

字符串
然后将其添加到您的php位置块中,这将位于您的vhost文件中查找以location ~ .php$ {}开头的块

fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;

bbmckpt7

bbmckpt72#

修改nginx配置并更改/设置以下指令:

proxy_buffer_size   128k;
    proxy_buffers   4 256k;
    proxy_busy_buffers_size   256k;

字符串

iqjalb3h

iqjalb3h3#

使用nginx + fcgiwrap + request太长

我也遇到了同样的问题,因为我使用了nginx + fcgiwrap配置:

location ~ ^.*\.cgi$ {
    fastcgi_pass  unix:/var/run/fcgiwrap.sock;
    fastcgi_index index.cgi;
    fastcgi_param SCRIPT_FILENAME /opt/nginx/bugzilla/$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
    # attachments can be huge
    client_max_body_size 0;
    client_body_in_file_only clean;
    # this is where requests body are saved
    client_body_temp_path /opt/nginx/bugzilla/data/request_body 1 2;
}

字符串
客户端正在使用大约6000个字符的URL进行请求(bugzilla请求)。

调试中...

location ~ ^.*\.cgi$ {
    error_log /var/log/nginx/bugzilla.log debug;
    # ...
}


这是我在日志中得到的:

2015/03/18 10:24:40 [debug] 4625#0: *2 upstream split a header line in FastCGI records
2015/03/18 10:24:40 [error] 4625#0: *2 upstream sent too big header while reading response header from upstream, client: 10....

我可以使用“414 request-uri too large”而不是“502 bad gateway”吗?

是的,你可以!我之前阅读How to set the allowed url length for a nginx request (error code: 414, uri too large),因为我想“嘿,网址太长了”,但我得到了502的,而不是414的。
large_client_header_buffers
尝试#1:

# this goes in http or server block... so outside the location block
large_client_header_buffers 4 8k;


这失败了,我的URL是6000字符<8 k.尝试#2:

large_client_header_buffers 4 4k;


现在我看不到502 Bad Gateway,而是看到414 Request-URI Too Large

“上游拆分FastCGI记录中的标题行”

我做了一些研究,在网上找到了一些东西:

这对我来说已经足够了:

location ~ ^.*\.cgi$ {
    # holds request bigger than 4k but < 8k
    fastcgi_buffer_size 8k;
    # getconf PAGESIZE is 4k for me...
    fastcgi_buffers 16 4k;
    # ...
}

hs1rzwqc

hs1rzwqc4#

我已经证明,这也是发送时,一个无效的头部被传输。无效的字符或HTTP头部的格式,cookie过期设置回一个多月,等都将导致:上游发送太大的头部,而阅读响应头部从上游

gpfsuwkq

gpfsuwkq5#

我在过去遇到过这个问题(没有使用codeigniter,但每当响应包含大量的头数据时就会发生),并习惯于调整这里建议的缓冲区,但最近我再次被这个问题困扰,缓冲区显然没问题。
原来这是spdy的错误,我在这个特定的项目上使用,并通过启用spdy头压缩解决了这个问题:

spdy_headers_comp 6;

字符串

ijxebb2r

ijxebb2r6#

upstream sent too big header while reading response header from upstream

字符串
我得到了这个nginx错误时,试图设置一个cookie在上游的Apache服务器(由PHP),cookie是超过4096字节导致这个错误在我的情况下。
我最初认为用户提交的表单太长,但我在cookie中保存了一个大的用户表单字段,这可能会导致错误。

t9aqgxwy

t9aqgxwy7#

Problem: upstream sent too big header while reading 
response header from upstream Nginx with Magento 2

个字符

  • fastcgi_buffer_size 4k;

  • fastcgi_buffer_size 128k;
  • fastcgi_buffers 4 256k;
  • fastcgi_忙碌_buffers_size 256 k;

相关问题