私の 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