4

私の Python Eve Api を本番環境に移行する時ではありません。これを行うにはいくつかの方法があり、最も一般的な要件は次のとおりです。

  • エラーログ
  • 自動リスポーン
  • 複数のプロセス(可能であれば)

私が見つけた最善の解決策は、nginx サーバーをフロントエンド サーバーとして使用することです。uWSGI ミドルウェアで実行されている python eve を使用します。

問題: __main__uwsgi によって呼び出されないカスタムがあります。

誰かがこの構成を実行していますか、または別の提案をしていますか? 動作したらすぐに、実行構成を共有します。

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

解決策 (更新):

以下の提案に基づいて、Eve() メソッドをinit .py に移動し、個別の wsgi.py でアプリを実行しました。

フォルダ構造:

webservice/init.py webservice/modules/... settings.py wsgi.py

init.py が含まれている場所

app = Eve(auth=globalauth.TokenAuth)
Bootstrap(app)
app.config['X_DOMAINS'] = '*'
...

そしてwsgi.pyが含まれています

from webservice import app
if __name__ == "__main__":
  app.run()

wsgi.ini

[uwsgi]
chdir=/var/www/api/prod
module=wsgi:app
socket=/tmp/api.sock
processes=1
master=True
pidfile=/tmp/api.v1.pid
max-requests=5000
daemonize=/var/www/api/logs/prod.api.log
logto=/var/www/api/logs/uwsgi.log

nginx.conf

location = /v1 { rewrite ^ /v1/; }
    location /v1 { try_files $uri @apiWSGIv1; }
    location @apiWSGIv1 {
              include uwsgi_params;
              uwsgi_modifier1 30;
              uwsgi_pass unix:/tmp/digdisapi.sock;
    }

開始コマンド:

uwsgi --ini uwsgi.ini
4

1 に答える 1