Welcome! Log In Create A New Profile

Advanced

Re: причина 'upstream sent too big header'?

January 27, 2011 04:22AM
On Thu, Jan 27, 2011 at 11:47:32AM +0300, Alex L. Demidov wrote:

> У моего клиента работает nginx 0.8.53 под debian, php через fastcgi
>
> location ~ \.php$ {
> ssi on;
> include fastcgi_params;
> fastcgi_pass 127.0.0.1:9000;
> fastcgi_index index.php;
> fastcgi_param SCRIPT_FILENAME /var/www/axis$fastcgi_script_name;
> }
>
> В процессе тестирования проявилась следующая проблема:
>
> 2011/01/26 10:39:29 [error] 12938#0: *116 upstream sent too big header while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: www.example.com, request: "POST /prestashop/modules/hsbc/validation.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.example.com", referrer: "http://www.example.com/prestashop/modules/hsbc/validation.php"
>
> Я порекомендовал клиенту добавить в секцию http { ... }
> 'fastcgi_buffers 8 16k;' и увеличивать первое число пока проблема не
> уйдет. Клиент докрутил до '128 16k', но проблема не решилась.
>
> Заодно клиент прислал мне ссылку на утверждение г. Hongi Lai (автора
> Phusion Passenger) что данная проблема не решается увеличением
> буферов, цитирую: 'It's got nothing to do with buffer sizes. Nginx
> simply refuses to accept response headers that are larger than a
> certain limit for security reasons.'
>
> http://groups.google.com/group/phusion-passenger/browse_thread/thread/5e6d0684793bc62d/b38b5374d957f3ef
>
> Я поразглядывал вызов process_header в src/http/ngx_http_upstream.c
> и его окрестности и этих 'certain limit for security reasons' (кроме
> обычного переполнения буферов) которые приводят к сообщению
> 'upstream sent too big header' так и не увидел. Но смотрел я всего
> полчаса и хотелось бы услышать чье-то более информированное мнение.
>
> Пока я посоветовал клиенту продолжить крутить буфера, но на этот раз
> менять второе число (16k) плюс одновременно добавить
> fastcgi_buffer_size с соответствующим размером (а надо ли?
> Документация говорит что этот буфер по умолчанию равен размеру
> буфера из fastcgi_buffers).

fastcgi_buffer_size - это буфер для чтения заголовка.
Потом он используется для тела на равне с fastcgi_buffers.
Его размер может отличаться от fastcgi_buffers:

fastcgi_buffer_size 256k;
fastcgi_buffers 8 16k;


--
Игорь Сысоев
http://sysoev.ru

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

причина 'upstream sent too big header'?

Alex L. Demidov January 27, 2011 03:48AM

Re: причина 'upstream sent too big header'?

Max Ivanov January 27, 2011 04:02AM

Re: причина 'upstream sent too big header'?

Igor Sysoev January 27, 2011 04:22AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 152
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready