我的应用程序有以下堆栈:
问题 NGINX重新启动后,一段时间(几分钟)运行良好。在那段时间之后,我收到了#34; 504 Gateway Time-out"错误。
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日志:
app.fc.com [pid:100017 | app:0 | req:103/219] 86.123.39.44(){44 vars 在859字节} [Fri Mar 9 06:24:22 2018] GET / login =>生成245 1 msecs(HTTP / 1.1 302)中的字节数131个字节的3个标头(1个开启 核心1)
我的NGINX配置是:
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秒
答案 0 :(得分:0)
解决方案
我在调用Redis的页面上发现了这种行为。我通过在Redis上为每个请求添加一个新的连接并在Redis配置中设置连接空闲超时来解决(短时间解决方案)。
其他发现
似乎在许多uWSGI线程共享连接后,Redis在300秒不活动(这是出现此问题后的间隔)后大约持续931秒。