ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.