Upstream demasiado grande – nginx + codeigniter

Recibo este error de Nginx, ¡pero parece que no puedo resolverlo! Estoy usando codeigniter y estoy usando la base de datos para las sesiones. Así que me pregunto cómo el encabezado puede ser demasiado grande. ¿Hay alguna forma de verificar qué es el encabezado? o potencialmente veo lo que puedo hacer para arreglar este error?

Avíseme si necesita que coloque cualquier archivo conf o lo que sea y lo actualizaré cuando lo solicite

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/" 

ACTUALIZAR

Agregué lo siguiente en conf:

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

Y ahora sigo recibiendo lo siguiente:

 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/" 

Agregue esto a su http {} del archivo nginx.conf que normalmente se encuentra en /etc/nginx/nginx.conf :

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

A continuación, agregue esto a su bloque de ubicación php, este se ubicará en su archivo vhost para buscar el bloque que comienza con la ubicación ~ .php $ {

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

Modifique su configuración de nginx y cambie / configure las siguientes directivas:

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

He comprobado que esto también se envía cuando se transmite un encabezado no válido. Los caracteres no válidos o el formato de los encabezados HTTP, la caducidad de la cookie retrocedida en más de un mes, etc. provocarán que: el encabezado enviado en sentido ascendente sea demasiado grande al leer el encabezado de respuesta desde el nivel superior

usando nginx + fcgiwrap + pedido demasiado largo

Tuve el mismo problema porque uso una configuración 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; } 

y el cliente estaba haciendo una solicitud con una URL de aproximadamente 6000 caracteres (una solicitud de bugzilla).

depuración …

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

Esto es lo que obtuve en los registros:

 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.... 

¿Puedo tener “414 request-uri too large” en lugar de “502 bad gateway”?

¡Sí tu puedes! Estaba leyendo Cómo configurar la longitud de la url permitida para una solicitud de nginx (código de error: 414, uri demasiado grande) antes porque pensé “hey la URL es demasiado larga” pero obtenía 502 en lugar de 414 .

large_client_header_buffers

Prueba # 1:

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

Esto falla, mi URL es de 6000 caracteres <8k. Prueba el # 2:

 large_client_header_buffers 4 4k; 

Ahora ya no veo un 502 Bad Gateway y en su lugar veo un 414 Request-URI Too Large

“upstream divide una línea de encabezado en registros FastCGI”

Hice algunas investigaciones y encontré en algún lugar en Internet:

Esto fue suficiente para mí:

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

Encontré este problema en el pasado (sin usar codeigniter pero sucede siempre que las respuestas contengan muchos datos de encabezado) y me acostumbré a ajustar los buffers como se sugiere aquí, pero recientemente me volvieron a picar por este problema y aparentemente los búferes estaban bien. .

Resultó que fue culpa de Spdy que estaba usando en este proyecto en particular y se resolvió habilitando la compresión de headers spdy como esta:

 spdy_headers_comp 6;