| Nginx-ru mailing list archive (nginx-ru@sysoev.ru) [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 Re: Bad file descriptor при посте кар	тинки и включенной add before	 body
 
 Hello!
On Tue, Mar 23, 2010 at 06:04:13AM -0400, Corsar wrote:
> Gentoo 64-х разрядная
> Nginx 0.7.64, через сокет привязал php-fpm 5.3.1
> В настройках виртуал-сервера прописан add_before_body с путем 
> /path/some_file.php
> Постчу картинку, картинка закачивается, показывается, но вверху страницы 
> имеем 502 ошибку.
> В логах nginx-а следующее:
> 2010/03/23 07:13:27  7043#0: *1554413 pread() failed, file 
> "/var/tmp/nginx/client/0000000153" (9: Bad file descriptor) while sending 
> request to upstream, client: 1.2.3.4, server: host.ru, request: "POST 
> /upload.php? HTTP/1.1", subrequest: "/path/some_file.php", upstream: 
> "fastcgi://unix:/var/run/php-fpm.sock:", host: "host.ru", referrer: 
> "http://host.ru/upload.php"
> 
> 
> Такая-же проблема при связке nginx 0.6.32 + php-cgi 5.5.12 по IP на 32-х 
> разрядном Debian-е.
Known issue.  После отправки заголовков основного ответа - файл с 
телом запроса закрывается (дабы не держать его на диске без нужды, 
0.3.3+), а подзапросы его снова пытаются использовать.  Workaround 
- для подзапросов явно прописывать
    proxy_pass_request_body off;
    proxy_set_header Content-Length "";
а для fastcgi соответственно
    fastcgi_pass_request_body off;
Т.е. в вашем случае как-то так:
    location = /path/some_file.php {
        fastcgi_pass_request_body off;
        fastcgi_pass ...
        ...
    }
Возможно для fastcgi ещё понадобится заменить fastcgi_param 
CONTENT_LENGTH на:
    fastcgi_param CONTENT_LENGTH 0;
Но может и без этого заработать, зависит от приложения.
Maxim Dounin
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
 |