私はDjango nignx-uwsgiを使用するアプリホストです。これが私のuwsgi構成です:
[uwsgi]
master = true
socket = /var/uwsgi/uwsgi.sock
chmod-socket = 666
chdir = /home/ubuntu/test
wsgi-file = /home/ubuntu/test/test/wsgi.py
virtualenv = /home/ubuntu/virtual
vacuum = true
enable-threads = true
daemonize= /home/ubuntu/uwsgi.log
Nignxログでエラーが発生します
2017/06/16 04:25:42 [エラー] 26129#0:* 1141328アップストリーム、クライアントへの接続中にunix:///var/uwsgi/uwsgi.sockへのconnect()が失敗しました(11:リソースが一時的に利用できません): xxx.xxx.xx、サーバー:
そしてサイトは502の悪いゲートウェイを示しています。修正するには、uwsgiを再起動する必要があります。しかし、エラーの頻度は増加しています。とにかくこれを修正することはありますか?.
このエラーは、サーバーに大きな負荷がかかっている場合に発生します。最初にworker_connectionsの値を増やしてみましたが、機能しませんでした。 uWSGIのキューサイズはデフォルトで100であるため、NginxからuWSGIへの100を超えるリクエストが渡されると、キューがいっぱいになり、Nginxがクライアントに502をスローします。これを解決するために、uWSGIのキューサイズが増加します。 uwsgi.iniファイルに「listen = {必要なキューサイズ}」を追加します。私の場合、listen = 200と書きました。
ただし、その前に、$ cat/proc/sys/net/core/somaxconnをチェックする必要があります。デフォルトの値は128なので、値を次のように増やします。$ echo 200>/proc/sys/net/core/somaxconn
または$ sysctl -w net.core.somaxconn = 200