2019

8

13

NginxとuWSGIのタイムアウト設定変更してやんよ!!!

Pocket
LINEで送る
Facebook にシェア
reddit にシェア
LinkedIn にシェア

長い分析処理などかける場合に、ローカル環境なら問題ないですが httpサーバーを経由しての実装となるとwebサーバー側で1分以上の接続は強制的にタイムアウトされてしまいます。

静的ページならNginx部分だけで問題ないですが、動的なアプリケーションでwebサービスとして運用する場合はアプリサーバー側でも設定しないとうまくいかなかったのでメモ。

実装環境

WEBサーバー Nginx
OS CentOS7
アプリケーションサーバ uWSGI
フレームワーク Flask

Nginx設定

# /etc/nginx/conf.d/nginx.conf

proxy_connect_timeout       600;
proxy_send_timeout          600;
proxy_read_timeout          600;
send_timeout                600;
uwsgi_read_timeout          600; 

Nginxのタイムアウト変更設定の検索でよく出るのが上記4項目ですが、uWSGIとNginxを紐づけるには最後のuwsgi_read_timeoutが必要です。

 

ここでは1カウント=1秒なので600カウント→10分間まで接続を継続させます。

uWSGI設定

# app/uwsgi.ini

harakiri = 600

uWSGIの設定ファイルは各環境によって異なると思いますが、自分はアプリディレクトリ内にログファイルと一緒に置いてます。
harakiriオプションをここでも600とします。しかしharakiriて名前・・・

Pocket
LINEで送る
Facebook にシェア
reddit にシェア
LinkedIn にシェア

トップへ