ПРОЕКТЫ 


  АРХИВ 


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: Fri, 11 Sep 2009 15:44: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=ryJ8Xim4zEIylpzAvCoL0HrOF1/DUBxXYCQVdQ99ooGXCjgBSWUABRm7Rt996mvPEx 0cxnmBBOSWnUPhhuUCnDIi9XCLyFzfTNCLqz3RdWQH6QRi+vbnwkSAufe0MOJ8ReZjpj /gZmu5XN4rpzaB+DVEAV7AB9zGJ7hib5AxwJw=
  • 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=uoSxlM2BcyNPDQ0UThLqERn6k89/S9CojscsuFQJqsZP51oCkPkTcq6yT/L5uN1SHK R5Sf0wJdVEGtIRevhoJARpgM4CKnKMmo0gvyT62tcCRbpkYs6Iz9PZPDtHNgoNOcbrwY 8Eo1Bihe6kqgmk9HFzzONjWgMjoCfYWWwtpwM=

Имеется следующая конфигурация:
- 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.