Вверх по течению слишком большой-nginx + codeigniter


Я получаю эту ошибку от Nginx,но не могу понять это! Я использую codeigniter и использую базу данных для сеансов. Поэтому мне интересно, как заголовок может быть слишком большим. Есть ли в любом случае, чтобы проверить, что заголовок? или потенциально видеть, что я могу сделать, чтобы исправить эту ошибку?

Дайте мне знать, если вам нужно, чтобы я разместил какие-либо файлы conf или что-то еще, и я обновлю их по вашему запросу

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

обновление

я добавил в следующей конфы:

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

5 ответов:

добавьте это в ваш http {} на nginx.conf файл обычно находится по адресу / etc/nginx / nginx.conf:

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

затем добавьте это в свой блок местоположения php, это будет расположено в вашем файле vhost ищите блок, который начинается с расположение ~ .php$ {

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

измените конфигурацию nginx и измените / установите следующие директивы:

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

Я доказал, что это также отправляется, когда передается недопустимый заголовок. Недопустимые символы или форматирование заголовков HTTP, срок действия файлов cookie, установленный более чем на месяц, и т. д. Все это вызовет: восходящий отправленный слишком большой заголовок при чтении заголовка ответа из восходящего

использование nginx + fcgiwrap + запрос слишком долго

у меня была та же проблема, потому что я использую конфигурацию 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;
}

и клиент делал запрос с URL-адресом, который был около 6000 символов (запрос 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 запрос-uri слишком большой" вместо "502 плохой шлюз"?

Да, вы можете! Я читал как установить допустимую длину url для запроса nginx (код ошибки: 414, uri слишком большой) раньше, потому что я думал, "Эй URL-адрес слишком длинный", но я получаю 502скорее, чем 414 ' s.

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 символов

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

я столкнулся с этой проблемой в прошлом (не используя codeigniter, но это происходит всякий раз, когда ответы содержат много данных заголовка) и привык настраивать буферы, как предлагается здесь, но недавно я снова укусил эту проблему, и буферы, по-видимому, были в порядке.

оказалось, что это была ошибка spdy, которую я использовал в этом конкретном проекте и решил, включив сжатие заголовков spdy следующим образом:

spdy_headers_comp 6;