uwsgiを使用してdjangoアプリを提供するためにcherokeeを実行しています。cherokee 1.2.x にアップグレードしてから、奇妙な動作が続いています。
セットアップは cherokee 1.2.x より前では問題なく機能しており、構成を変更していません。
問題は、uwsgi が実行されていないときに django アプリ サイトを読み込もうとすると、最初に 503 エラーが発生することです。後続のリクエストは正常に機能します。ログを見ると、チェロキーが複数の uwsgi インスタンスを生成していることがわかります。これが問題のようです。
ここにcherokee.errorログを投稿しました
チェロキーが複数の uwsgi インスタンスを生成しているようです:
probably another instance of uWSGI is running on the same address.
uwsgi の私の構成は次のとおりです。
<pidfile>/home/my_home/my_project/uwsgi.pid</pidfile>
<vacuum />
<processes>4</processes>
<harakiri>30</harakiri>
<master />
この問題のもう 1 つの症状は、503 の後、続いて uwsgi が正常に開始された後、PID ファイルがないことです。これは、起動して失敗した uwsgi の追加インスタンスが、終了時に PID ファイルを削除するためです。
binding on TCP port: 45611
probably another instance of uWSGI is running on the same address.
bind(): Address already in use [socket.c line 341]
VACUUM: pidfile removed.
したがって、全体として、問題は次のとおりです。
- チェロキーによって uwsgi が開始された後、最初のビューに 503 が表示される
- PID ファイルが作成されていない (または作成されているが、別の終了している uwsgi プロセスによってすぐに削除されている)
uwsgi ソース コードに対してのみ一致する Google 検索probably another instance of uWSGI is running on the same address
なので、これを経験しているのは私だけのようです。
同じセットアップの複数のコンピューターで同じ問題が発生します。
何か案は?
ソフトウェアのバージョン:
- uWSGI 0.9.6.2
- チェロキー 1.2.1
- Django 開発トランク (1.3 rc と 1.3 の間)