我有使用 nignx-uwsgi 的 django 应用程序主机。这是我的 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 [error] 26129#0: *1141328 connect() to unix:///var/uwsgi/uwsgi.sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: xxx.xxx.xx, server:
并且该站点显示 502 错误网关。我必须重新启动 uwsgi 才能修复它。但错误的频率正在增加。有没有什么办法解决这一问题。
最佳答案
当服务器负载过重时会出现此错误。首先,我尝试通过增加 worker_connections 的值,但没有奏效。 uWSGI 的队列大小默认为 100,所以当 Nginx 向 uWSGI 传递超过 100 个请求时,队列已满,Nginx 向客户端抛出 502,以解决这个问题,增加 uWSGI 的队列大小。在 uwsgi.ini 文件中添加“listen= {required queue size}”。就我而言,我写道,listen=200。
但是在做之前,你必须检查 $ cat/proc/sys/net/core/somaxconn
默认情况下,它的值为 128,因此通过以下方式增加其值:
$echo 200 >/proc/sys/net/core/somaxconn
或 $ sysctl -w net.core.somaxconn=200
关于django - 使用 uwsgi + nginx 暂时不可用资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44581719/