我的应用程序有以下堆栈:
NGINX重启后的问题在一段时间内(几分钟)都能正常工作。在此期间之后,我收到一个“504网关超时”错误。
NGINX日志:
*13从上游读取响应标头时上游超时(110:连接超时),客户端:86.123.39.44,服务器:app.fc.com,请求:“get/dashboard/overview http/1.1”,上游:“uwsgi://127.0.0.1:8001”,主机:“app.fc.com”,引用者:“http://app.fc.com/dashboard/overview”
uWSGI日志:
server {
listen 80;
listen [::]:80;
root /var/www/fc/website;
index index.html index.htm index.php;
# Make site accessible from http://localhost/
server_name app.fc.com;
location / {
sendfile on;
client_max_body_size 20M;
keepalive_timeout 0;
proxy_connect_timeout 10;
proxy_send_timeout 15;
proxy_read_timeout 20;
include uwsgi_params;
uwsgi_pass 127.0.0.1:8001;
#uwsgi_read_timeout 30;
#uwsgi_send_timeout 30;
uwsgi_connect_timeout 60;
uwsgi_ignore_client_abort on;
}
}
我的uWSGI配置是:
[uwsgi]
vhost = true
socket = :8001
#wsgi-file = /var/www/app.fc.com/reviewApp/wsgi.py
wsgi-file = /var/www/fc/app/wsgi.py
callable = app
processes = 2
threads = 4
chdir = /var/www/fc/app/
pythonpath = /var/www/fc/app/
pythonpath = /var/www/py3/lib/python3.4
virtualenv = /var/www/py3
plugins = python3
通常,对我请求的响应持续不到5秒
解决方案
我已经在Redis被调用的页面上发现了这种行为。我通过在Redis为每个请求添加一个新的连接并在Redis配置中设置连接空闲超时来解决(短时间解决方案)这个问题。
其他发现
当连接在许多uWSGI线程之间共享时,Redis似乎在300秒不活动后挂起约931秒(这是该问题出现后的间隔)。
我的nginx配置: 这是nginx或uwsgi的问题,还是两者都有?
我发现很难找到有关这方面的资料。会是什么?我如何解决这个问题?有哪些可能的修复方法? UWSGI日志文件 时钟来源:unix检测到CPU核数:4当前工作目录:/home/pi检测到二进制路径:/usr/local/bin/uwsgi!!!没有内部路由支持,重建与pcre支持!!!*警告:您在没有主进程管理器的情况下运行uWSGI进程数限制为7336内存页大小为4096字节检测到最大文件描述符号:6
null 我们得出的结论是,客户端可以连接到Nginx,但是Nginx在将请求重定向到FPM(可以通过端口7777访问)时没有收到响应,并显示超时错误。我们一直致力于解决Nginx和FPM之间的通信问题,但几个小时后,我们还没有找到解决方案。 注意:这个问题在我们设置的四个虚拟机中重复出现。 Nginx错误日志(注意:主机名和ip已被取消) 文件:/etc/nginx/fastcgi_params
我有Puma运行作为上游应用服务器和Riak作为我的后台数据库集群。当我发送一个请求,为大约25K用户映射-减少一个数据块,并将其从Riak返回到应用程序时,我在Nginx日志中得到一个错误: Nginx有一系列超时指令。我不知道我是不是漏掉了什么重要的东西。如有任何帮助将不胜感激....
很好用。但是,如果我发布了一个更大的json文件,我会得到一个504:Gateway超时。 我感觉Nginx和Uwsgi之间的通信有一个问题,但我不知道如何解决它。 编辑:我跳入docker容器并手动重启nginx以获得更好的日志记录。我收到以下错误: /etc/nginx/conf.d/nginx.conf: /etc/nginx/conf.d/upload.conf: