web-dev-qa-db-ja.com

nginx uwsgi内部サーバーエラー500-http uwsgiヘッダー:「接続:閉じる」

nginxとpython flask awsのアプリ、およびwsgiで小さなサーバーを使用しています。サーバーがエラー5でダウンし、nginxに代わってログが記録されないことが既に2回発生しています。私は専門家ではありませんが、次のことが起こる理由を理解するのを手伝ってもらえますか?

サーバーが「ランダムに」(?)このエラーで停止するように見えます:(nginx.confファイルのerror_log /pathtomylog/error.log debugdebugをアクティブにして、それを表示できるようにしました):

2015/12/02 22:05:12 [debug] 19006#0: *1 http upstream process header
2015/12/02 22:05:12 [debug] 19006#0: *1 malloc: 0000000001D24CE0:4096
2015/12/02 22:05:12 [debug] 19006#0: *1 recv: fd:11 104 of 4096
2015/12/02 22:05:12 [debug] 19006#0: *1 http uwsgi status 500 "500 Internal Serv
er Error"
2015/12/02 22:05:12 [debug] 19006#0: *1 http uwsgi header: "Connection: close"
2015/12/02 22:05:12 [debug] 19006#0: *1 http uwsgi header: "Content-Type: text/p
lain"
2015/12/02 22:05:12 [debug] 19006#0: *1 http uwsgi header done
2015/12/02 22:05:12 [debug] 19006#0: *1 xslt filter header
2015/12/02 22:05:12 [debug] 19006#0: *1 HTTP/1.1 500 Internal Server Error

私はuswgiのすべての労働者を殺そうとしました。私はnginxを再起動しようとしました。 RAMメモリはまだ正常に見え、ElasticSearchのためにスワップを無効にしました(はい、1GB RAMで使用していますが、インデックスのサイズについてはまだ不満はありませんでした)。

アラームなどを設定する方法についてのリファレンスも参照できますか? confファイル、アプリ、静的ファイルのいずれも変更せずにエラーが2回発生したため、静的ファイルは問題なく提供され、APIの終了点はそうではなく、uswgiに関連すると思いましたが、理解できません。

私はサーバー構成の専門家ではなく、実際には技術的な詳細の世界でいっぱいです!ジャングルに散らばって助けてください:)

3
user305883

[解決しよう]uswgiはpythonモジュールで解決できませんでした。

私は次のことをしてエラーを見つけました。それはデバッグのために他の誰かに役立つかもしれません。

Uswgiのログを確認しました:まだ持っていない場合は、アプリを起動するようにuwsgiに指示する.iniファイルで設定します。

logto = /var/log/uwsgi/%n.log

(新しい場合は、このチュートリアルを参照してください: https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on- ubuntu-14-04

次に、上記のフォルダーでログファイルを見つけて、

tail -f myapp.log

pythonアプリが見つかりませんでした。少し頭を悩ませた後、ヘッダーにエラーがないことがわかりましたが、単に[name.version.py]記法としてアプリのバックアップモジュールに名前を付けていたためです( 命名で行わない主なことpython modules .. uups私がやった)。

そのため、どのモジュールを開始するのかがわかりませんでした。

例として、バックアップの名前を次のように変更します:mv oldname.version.py newname_version.py

そして再び動作します。

ただし、アプリが正常に動作している間にバックアップファイルをサーバーにアップロードし、2日前まで動作し続けたため、サーバーがダウンして再起動し、どのモジュールが解決するかを理解できないことがわかりました。サーバーの再起動?普通ですか?あなたが理解しているように、サーバー設定は私のビジネスではありませんが、エラー500(アラームの設定)を防止または処理する方法についてのより明確な理解に対するコメントは大歓迎です!

2
user305883