2011-06-23 14 views
2

私はaailsをアップロードするためにRailsとvalums file-uploaderを使用しています。開発では、すべての作品は完璧に、しかし、生産のlinode nginxで物事を壊す。 エラーログ:rails ajaxファイルアップロードとnginx

[ pid=2097 thr=3065629552 file=ext/nginx/HelperAgent.cpp:584 time=2011-06-23 09:47:06.714 ]: Uncaught exception in PassengerServer client thread: exception: An error occured while sending the request body to the request handler: Broken pipe (32) backtrace: 
    in 'virtual void Passenger::Session::sendBodyBlock(const char*, unsigned int)' (Session.h:198) 
    in 'void Client::sendRequestBody(Passenger::SessionPtr&, Passenger::FileDescriptor&, const std::string&, long unsigned int)' (HelperAgent.cpp:295) 
    in 'void Client::handleRequest(Passenger::FileDescriptor&)' (HelperAgent.cpp:510) 
    in 'void Client::threadMain()' (HelperAgent.cpp:603) 

2011/06/23 09:47:06 [error] 2134#0: 
*13 sendfile() failed (32: Broken pipe) while sending request to upstream, client: 94.76.87.38, server: 
69.168.213.69, re$ 

アップロードはレール3とペーパークリップを使用して、javascriptをせずに正常に動作しています。データベース - PostgreSQL 私はサーバーサイドのものではなく、修正方法を探しています。追加情報が必要な場合は、コメントを残してください。

答えて

3

ファイルアップロードは、webbrickではStringIOで動作しますが、webrick以外のすべてではRack :: SometHING :: SometHINGで動作します。この変更の問題を修正:

- file = request.body 
+ file = StringIO.new(request.body.read) 
関連する問題