ПРОЕКТЫ 


  АРХИВ 


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]

*1 sendfile() failed (9: Bad file descriptor) while sending request to upstream


  • To: nginx-ru@xxxxxxxxx
  • Subject: *1 sendfile() failed (9: Bad file descriptor) while sending request to upstream
  • From: Roman Mashirov <mrj@xxxxxxxx>
  • Date: Wed, 23 Apr 2008 12:29:01 +0400

Добрый день!

Есть следующая конфигурация:

...
       location ^~ /profile/ {
           proxy_pass http://backend;
           ssi on;
       }

       location /block {
           root   /1/www/nginxtest/cache;
           error_page   404  =  @fallback;
           allow 127.0.0.1;
           deny all;
       }

...

Бэкэнд должен обработать post и вернуть страницу с основным куском и
пачкой <!--#include file="/block"> которые в свою очередь будут
обработаны nginx и либо взяты из локального дискового кэша либо
перенаправлены снова на бэк. Так вот для перенаправляемых на бэк
запросов получаю в логе:

2008/04/23 12:07:56 [error] 87079#0: *70 open()
"/1/www/nginxtest/cache/block/1353" failed (2: No such file or
directory), client: 89.223.40.177, server: frontend, URL: "/profile/",
subrequest: "/block/1353", host: "frontend:8080", referrer:
"http://frontend:8080/profile/";
2008/04/23 12:07:56 [error] 87079#0: *70 open()
"/1/www/nginxtest/cache/block/1355" failed (2: No such file or
directory), client: 89.223.40.177, server: frontend, URL: "/profile/",
subrequest: "/block/1355", host: "frontend:8080", referrer:
"http://frontend:8080/profile/";
2008/04/23 12:07:56 [crit] 87079#0: *70 sendfile() failed (9: Bad file
descriptor) while sending request to upstream, client: 89.223.40.177,
server: frontend, URL: "/profile/", subrequest: "/block/1357", upstream:
"http://195.70.197.24:80/block/1357";, host: "frontend:8080", referrer:
"http://frontend:8080/profile/";
2008/04/23 12:07:56 [crit] 87079#0: *70 sendfile() failed (9: Bad file
descriptor) while sending request to upstream, client: 89.223.40.177,
server: frontend, URL: "/profile/", subrequest: "/block/1357", upstream:
"http://195.70.197.24:80/block/1357";, host: "frontend:8080", referrer:
"http://frontend:8080/profile/";

Все работает правильно если запрос достаточно мал и помещается в буфер в
памяти. Ошибка возникает только для больших форм. Пробовал ставить
include virtual wait="yes" вместо include file -- не помогло.

Настораживает еще и то, что в сообщениях про sendfile filed говорится
про один и тот-же блок, в то время как исходно инклюдились разные...

Подскажите, плс, куда рыть?

Заранее спасибо,
--
MRJ





 




Copyright © Lexa Software, 1996-2009.