LINUXで以下のような症状が発生しており困っております。
pythonのtornadoでwebアプリケーションを書いているのですが
このtornadoアプリを実運用するためにApacheでリバースプロキシを使って実行していますが
pythonのtornadoアプリケーション任意のポートで動かす際に
停止した時に自動で復帰させるsupervisorが自動で再起動しません。
例えば,pythonのtornadoアプリにシンタックスエラーがあった場合
通常ApacheがHTTPステータスコードの503エラーを出力しますが,シンタックスエラーを修正しても
Apacheは依然として503エラーを出力したままなのです。
その際になんとか復帰させようと,service supervisord restart
とsupervisorの再起動を行うと503コードを返していたApacheも復帰します。
詳細は以下となります。
まず
pythonのtornadoアプリケーションは以下のように任意のポートをlistenしています。
if __name__ == "__main__": app = make_app() app.listen(60012) tornado.ioloop.IOLoop.current().start()
そしてsupervisorの自動起動の設定ファイルは
[program:myPython]
command=/usr/local/python/bin/python3.6 /var/www/free.sample.com/public/index.py
process_name=myPython
autostart=true
autorestart=true
user=apache
stopasgroup=true
と上記のような設定にしています。
設定項目はググった結果の設定例を引用しているだけで実際
項目の意味はほとんど理解できていませんが...
Apacheのプロキシの設定は
ProxyPass / http://free.sample.com:60012/ retry=1 min=2 acquire=3000 timeout=60 keepalive=On
ProxyPassReverse / http://free.sample.com:60012/
上記の通りです。
apacheとsupervisorともに一度起動すると正しく動作します。
その後,何らかの原因で503を発生させると(スクリプトのシンタックスエラーなど)
コマンド> supervisorctl をたたくと以下のように出力されます。
myPython FATAL Exited too quickly (process log may have details)
さて,実現したいこととしては,
pythonのtornadoアプリケーションがシンタックスなどで503ステータスを返却したとしても
supervisorを自動で再起動するようにしたいです。
おそれいりますが お詳しい方ご教授ください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/10/25 11:19