ПРОЕКТЫ 


  АРХИВ 


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]

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


  • To: nginx-ru@xxxxxxxxx
  • Subject: причина 'upstream sent too big header'?
  • From: "Alex L. Demidov" <alexeydemidov@xxxxxxxxx>
  • Date: Thu, 27 Jan 2011 11:47:32 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:date:from:to:subject:message-id:reply-to :mail-followup-to:mime-version:content-type:content-disposition :content-transfer-encoding:x-url:user-agent; bh=+R/diJBGIe4+gZHKmFW+t2CI2K3s0xI0iO3E07yAB3Y=; b=xXmo/cDRLFOK9eF26TRA5vvtWiALkFvZvGwqD8kNC2yGq7gTk2W+jmHWF9wLlCkGEn lGRlq70NxdqvlD+/+ieWm01ORcej6tA2RWQDK9/0AppiArON9fGO/DASEx3se+1xWmnb CF56fqls1Y/2wk3flyu8uqvUurnD71UmDnWMs=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:subject:message-id:reply-to:mail-followup-to :mime-version:content-type:content-disposition :content-transfer-encoding:x-url:user-agent; b=FPcMFobKGpMQEHf5wzYyEfRivfOV3/FRDqiTXUQrlcm3aLnooye+TYroI5XkhZ9lYq lioRgEs5sq1FU1gVCYPI3jPaovWjSRrzZFM7nLxyFkz6UIErKoRFo8W5Qv1DDr+L632S PScyZf3UPjEwFRABnKmEG71gFJGlR1N/zQ1Pk=
  • Mail-followup-to: nginx-ru@xxxxxxxxx

У моего клиента работает 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).

-- 
Alex L. Demidov (ALD9-RIPE).
http://alexeydemidov.com/
Freelance Consulting.

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.