2011-07-12 36 views
13

私はUbuntu 10.04、Django 1.3、Nginx 0.8.54、およびuWSGI 0.9.7を実行しています。Django + Nginx + uWSGI = 504ゲートウェイのタイムアウト

NginxとuWSGIの両方がエラーなくロードされます。ただし、私のサイトにアクセスすると、長時間座って、最終的に "504 Gateway Time-out"エラーがロードされます。ここで

は私のnginxのバーチャルホストのconfファイルである:

SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected) on request/!!! 

マイ・エラー・ログ・ショーこの:

upstream timed out (110: Connection timed out) while reading response header from upstream 

server { 
listen   80; 
server_name  www.mysite.com mysite.com; 
error_log  /home/mysite/log/error.log; 
access_log  /home/mysite/log/access.log; 

location/{ 
    auth_basic "Restricted"; 
    auth_basic_user_file /home/mysite/public/passwd; 
    include uwsgi_params; 
    uwsgi_pass unix:///home/mysite/public/myapp.sock; 
} 

location /media { 
    alias /home/mysite/public/myapp/media; 
} 


error_page 401 /coming_soon.html; 

location /coming_soon.html { 
    root /home/mysite/public/error_pages/401; 
} 

location /401/images { 
    alias /home/mysite/public/error_pages/401/images; 
} 

location /401/style { 
    alias /home/mysite/public/error_pages/401/style; 
} 

}

私のサイトのログには、このことを示しています

私は2つありますこのサーバー上の他のサイトは同じ構成であり、完全にロードされます。

他に誰かがこの問題を抱えていますか?私の問題と似ているいくつかのスレッドがありますが、私はそれらのソリューションのいくつかを試しましたが、何も動作していないようです。

ありがとうございました!

+0

uWSGIの設定を追加します。 'uwsgi_pass unix:///home/mysite/public/myapp.sock; ' – nk9

答えて

1

unix:///home/mysite/public/myapp.sock; 構文が正しくない、このように使用:

unix:/home/mysite/public/myapp.sock;

19

リクエストがNGINX uwsgi_read_timeoutの設定を超えた場合、このエラーが発生します。 NGINXがこの制限を超えると、ソケットが閉じられ、uWSGIはクローズドソケットに書き込みを試み、uWSIGから表示されるエラーを生成します。

NGINXタイムアウトが少なくともuWSGIタイムアウト(HARAKIRI_TIMEOUT)以上であることを確認してください。

+0

明確にするために、対応する' location'セクションの中に 'uwsgi_read_timeout 600;'を追加する必要があります。 – serg

+0

男、...私は3時間頭を叩いて、nginxで任意のパラメータを設定しようとしていました。どうも! –

関連する問題