Re: Bad file descriptor при посте картинки и включенной add before body

Corsar nginx-forum на nginx.us
Вт Мар 23 14:38:41 MSK 2010


Maxim Dounin Wrote:
> > 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"
> > 
> 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


Спасибо, помогло.
    fastcgi_param  CONTENT_LENGTH   0;
    fastcgi_pass_request_body off;

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,66924,66927#msg-66927




Подробная информация о списке рассылки nginx-ru