django - 使用 uwsgi + nginx 暂时不可用资源

标签 django nginx uwsgi

我有使用 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/

相关文章:

python - 同步本地和远程数据库

python - Django REST框架序列化模型组合

python - 如何动态更改 Django Rest Framework 嵌套序列化程序的深度?

python - 按周分组,填充 'missing'周

http - 当 POST 中出现错误时通过 nginx 返回一个 body

python - 根目录下静态站点的 Nginx 配置,子目录下的 Flask 应用

nginx - 如何为 ipfs 网关设置 nginx?

sockets - Nginx 反向代理 + uwsgi 和 flask 应用的负载均衡

python - uWSGI应用程序找不到挂载点,但加载了html

python - Tornado官方canonical "Hello, world"example app报错怎么解决?