ПРОЕКТЫ 


  АРХИВ 


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]

Проблема с X-Accel-Redirect


  • To: nginx-ru@xxxxxxxxx
  • Subject: Проблема с X-Accel-Redirect
  • From: Alex Solovey <a.solovey@xxxxxxxxx>
  • Date: Sat, 12 Sep 2009 18:12:40 -0500
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:content-type :content-transfer-encoding; bh=Y86KpMrjI/gp/TNqoJnfo5hFwKidvrCFdQA4jEBNQOI=; b=c+4xtMO3dL/6rP4zlZkIMmvpfweV8iMzdbLHFshuwlVy9orayrO+wF+fsOdqnaoCs1 WO0ovKz6Cc0QgFfM5hg10rMZmxBhPcUNeSuDgpO/qaeBwd0dJLoAr220dbbzGYoSIQ+x ozAO/W83zrM2IIxPRfvd/6Ko+UDm6zVTh7dW8=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; b=nNdBMQswMCAK2/NcFWVJWyQYcbfbR1uTlHqzYCzJbDiIebTGJa3n7mDNuCKS82H+cJ +zzOSfOtNdq77e9sIyq/VL0hecEZZ6+gHx5VfPyzLlsIey6n0tqOYJdW5VCd+GU2lVdJ XxfroZeGsEIz5Kv/68mWkf5qZIn1al8rOyhLs=

Имеется следующая конфигурация:
- nginx 0.8.14 в качестве proxy-сервера
- сервер приложений apache+mod_perl
- Linux 2.6.28-15-generic (Ubuntu 9.04)

Сервер приложений для некоторых запросов отдает файлы посредством
X-Accel-Redirect. До первого такого запроса все работает нормально. Но
как только встретился первый X-Accel-Redirect, для последующих запросов
nginx вместо полученного от сервера приложений ответа отсылает случайным
образом любой из предыдущих ответов. Иногда вместо нормального ответа
приходит мусор, состоящий из склееных вместе нескольких предыдущих ответов.
Пример:
    http://x.y.z/app/foo  --> ok
    http://x.y.z/app/bar  --> ok
    http://x.y.z/app/file --> ok (здесь используем X-Accel-Redirect)
    http://x.y.z/app/bar  --> отдает file
    http://x.y.z/app/foo  --> отдает file
    http://x.y.z/app/bar  --> отдает foo
    http://x.y.z/app/file --> отдает мусор
        ... ждем время, достаточное для закрытия keep-alive ....
    http://x.y.z/app/foo  --> ok
    http://x.y.z/app/bar  --> ok
    http://x.y.z/app/foo  --> ok
    http://x.y.z/app/file --> ok (здесь используем X-Accel-Redirect)
    http://x.y.z/app/foo  --> отдает мусор

Это продолжается до закрытия keep-alive соединения. После чего всё опять
работает нормально дл первого запроса с X-Accel-Redirect. Если
установить keepalive_timeout 0, то проблема не возникает.

Опытным путем удалось выяснить, что проблема появилась в nginx-0.8.11;
версии 0.7.61 и 0.8.10 работают нормально.




 




Copyright © Lexa Software, 1996-2009.