現在、django + uwsgi + nginx セットアップを使用して、Web アプリをサーバー化しています。現在、django の貧弱な Python コードが原因でプロセスが終了した場合、プロセスの再生成に問題があります。
私はコーダーが苦手なので、これはよく起こります。uwsgi はデッドプロセスを復活させるだけだと思っていました。
私の構成ファイルは次のとおりです。私のUWSGIファイルの場合:
[uwsgi]
# variables
projectname = testapp
base = /home/ubuntu/testapp
# config
protocol = uwsgi
pythonpath = %(base)/src/%(projectname)
module = %(projectname).wsgi
socket = /tmp/%(projectname).sock
logto = %(base)/logs/uwsgi.log
chmod-socket = 777
processes = 2
master = 1
harakiri-verbose = true
そして私のnginxファイル:
server {
listen 80;
server_name mytestserver;
location / {
include uwsgi_params;
uwsgi_read_timeout 300;
uwsgi_pass unix:///tmp/testapp.sock;
}
access_log /home/ubuntu/testapp/logs/access.log;
error_log /home/ubuntu/testapp/logs/error.log;
}
nginx と uwsgi の両方の init.d ファイルを作成しました。uwsgi を皇帝モードで管理しています。uwsgi.ini ファイル (/etc/uwsgi/vassals にシンボリック リンク) を保持するフォルダーを指定します。
私の UWSGI ログは次のとおりです: PID 番号に注意してください: 12363 と 12365 のプロセスで始まり、django コードWhy die here now
で実行する印刷メッセージに到達すると、プロセス 12363 だけが残り、その後終了します。私のWebアプリは何もロードすることを拒否します(その部分は理にかなっています)
[pid: 12365|app: 0|req: 85/174] 123.123.123.123 () {32 vars in 414 bytes} [Thu Oct 10 02:31:58 2013] POST /test1=> generated 9 bytes in 4 msecs (HTTP/1.1 200) 1 headers in 59 bytes (1 switches on core 0)
[pid: 12365|app: 0|req: 86/175] 123.123.123.123 () {32 vars in 414 bytes} [Thu Oct 10 02:31:58 2013] POST /test1 => generated 9 bytes in 3 msecs (HTTP/1.1 200) 1 headers in 59 bytes (1 switches on core 0)
[pid: 12363|app: 0|req: 87/176] 123.123.123.123 () {32 vars in 414 bytes} [Thu Oct 10 02:31:59 2013] POST /test1 => generated 9 bytes in 4 msecs (HTTP/1.1 200) 1 headers in 59 bytes (1 switches on core 0)
why break here now?
[pid: 12363|app: 0|req: 88/177] 123.123.123.123 () {32 vars in 414 bytes} [Thu Oct 10 02:32:02 2013] POST /test1 => generated 9 bytes in 5 msecs (HTTP/1.1 200) 1 headers in 59 bytes (1 switches on core 0)
[pid: 12363|app: 0|req: 89/178] 123.123.123.123 () {32 vars in 414 bytes} [Thu Oct 10 02:32:02 2013] POST /test1 => generated 9 bytes in 7 msecs (HTTP/1.1 200) 1 headers in 59 bytes (1 switches on core 0)
uwsgi Emperorは家臣をリスポーンすると思いますが、家臣は死んでいませんか? 私はすべてを再起動できます。すべてが少しの間正常に機能します...その後、停止します。