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
|