我在Google Computing上运行了Nginx-gunicorn-flask设置 而且我不断从Gunicorn获得以下信息:
call1_0 = require("lib1_0")
-- example of desired outcome
call1_0.type_2("x","y","z") --> x y z
-- build up call from pieces
local major, minor, fnum = 1, 0, 2
local args = "'x', 'y', 'z'"
local codestr = string.format("call%d_%d.type_%d(%s)", major, minor, fnum, args)
print(codestr) --> call1_0.type_2('x', 'y', 'z')
local code = load(codestr)
code() --> x y z
在100个请求中,大约有23个这样发出。在访问日志中,仅显示23个请求,它们全部为200。
从nginx访问日志显示504,在错误日志中,我看到以下内容:
[2019-04-19 20:50:49 +0000] [3345] [DEBUG] POST /
[2019-04-19 20:50:49 +0000] [3345] [DEBUG] Ignoring EPIPE
我尝试设置
2019/04/19 20:50:49 [error] 3097#3097: *295 upstream timed out (110: Connection timed out) while sending request to upstream, client: ip, server: , request: "POST / HTTP/1.1", upstream: "http://unix:/home/user/Server/server.sock/", host: "ip"
基于other questions在gunicorn中的nginx和proxy_connect_timeout 75s;
proxy_read_timeout 300s;
上的位置,但这没有帮助。
来自gunicorn的消息并不能真正帮助确定原因,而且我也没有找到任何有关信息
曾经尝试解决这个问题有一段时间,对此我将不胜感激。另外,每个请求大约需要1-2秒,jmeter会显示巨大的延迟,直到结果显示出来。
看看gunicorn的代码,这是一个errno.EPIPE异常,与套接字有关...
答案 0 :(得分:0)
如果 Gunicorn
和 NGINX
在同一台服务器上运行,这可能是权限问题。
像 ps aux | grep gunicorn
一样检查 Gunicorn 服务器正在运行您的应用程序的用户,然后您可以相应地更改权限。
停止NGINX
,然后运行下面的命令
chown gunicorn_user_here.nginx /var/lib/nginx/tmp/proxy -v
rm /var/lib/nginx/tmp/proxy/* -R
chmod 777 /var/lib/nginx/tmp -v
启动 NGINX
并检查日志。
答案 1 :(得分:0)