0

現在、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は家臣をリスポーンすると思いますが、家臣は死んでいませんか? 私はすべてを再起動できます。すべてが少しの間正常に機能します...その後、停止します。

4

1 に答える 1

1

プロセスが終了すると、ログにその終了に関するメッセージが表示されます。プロセスが単純に動かなくなったのではありませんか? harakiri verbose を有効にしましたが、harakiri を有効にしていないため、スタックしたリクエストの監視は行われません。

于 2013-10-10T03:13:09.410 に答える