Upstream te groot – nginx + codeigniter

Ik krijg deze foutmelding van Nginx, maar ik kom er niet uit! Ik gebruik codeigniter en gebruik de database voor sessies. Dus ik vraag me af hoe de header ooit te groot kan zijn. Is er een manier om te controleren wat de header is? of mogelijk zien wat ik kan doen om deze fout op te lossen?

Laat het me weten als je me nodig hebt om conf-bestanden of wat dan ook op te zetten en ik zal updaten als je erom vraagt

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

UPDATE

Ik heb het volgende toegevoegd aan conf:

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

En nu krijg ik nog steeds het volgende:

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

Antwoord 1, autoriteit 100%

Voeg dit toe aan uw http {}van het nginx.conf-bestand dat zich normaal gesproken bevindt op /etc/nginx/nginx.conf:

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

Voeg dit vervolgens toe aan uw php-locatieblok, dit bevindt zich in uw vhost-bestand, zoek naar het blok dat begint met location ~ .php$ {

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

Antwoord 2, autoriteit 6%

Wijzig uw nginx-configuratie en wijzig/stel de volgende richtlijnen in:

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

Antwoord 3, autoriteit 4%

Ik heb bewezen dat dit ook wordt verzonden wanneer een ongeldige header wordt verzonden. Ongeldige tekens of opmaak van de HTTP-headers, vervaldatum van cookies met meer dan een maand teruggezet, enz. veroorzaken allemaal: upstream een ​​te grote header verzonden tijdens het lezen van de responsheader van upstream


Antwoord 4, autoriteit 4%

nginx + fcgiwrap + verzoek te lang gebruiken

Ik had hetzelfde probleem omdat ik een nginx + fcgiwrap-configuratie gebruik:

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;
}

en de klant deed een verzoek met een URL van ongeveer 6000 tekens (een bugzilla-verzoek).

foutopsporing…

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

Dit is wat ik in de logs heb:

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

mag ik “414 request-uri te groot” hebben in plaats van “502 slechte gateway”?

Ja dat kan!
Ik las Hoe de toegestane URL-lengte in te stellen voor een nginx-verzoek (foutcode: 414, uri te groot)eerder omdat ik dacht “hey, de URL is te lang”, maar ik kreeg 502‘s in plaats van 414‘s.

large_client_header_buffers

Probeer #1:

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

Dit mislukt, mijn URL is 6000 tekens < 8k. Probeer #2:

large_client_header_buffers 4 4k;

Nu zie ik geen 502 Bad Gatewaymeer en in plaats daarvan zie ik een 414 Request-URI Too Large

“stroomopwaarts splitsen van een kopregel in FastCGI-records”

Wat onderzoek gedaan en ergens op internet gevonden:

Dit was voldoende voor mij:

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

Antwoord 5, autoriteit 3%

Ik ben dit probleem in het verleden tegengekomen (ik gebruikte geen codeigniter, maar het gebeurt telkens wanneer de reacties veel headergegevens bevatten) en raakte eraan gewend de buffers aan te passen zoals hier wordt gesuggereerd, maar onlangs werd ik opnieuw gebeten door dit probleem en de buffers waren blijkbaar in orde.

Het bleek de fout van spdy te zijn die ik voor dit specifieke project gebruikte en opgelost door spdy-headerscompressie als volgt in te schakelen:

spdy_headers_comp 6;

Antwoord 6

Probleem: upstream stuurde te grote header tijdens het lezen van 
responsheader van upstream Nginx met Magento 2
Oplossing: vervang de onderstaande instelling in het bestand /nginx.conf.sample

  • fastcgi_buffer_size 4k;

met

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

Other episodes