K41*_*F4r 11 python nginx gunicorn server ubuntu-18.04
我在谷歌计算上运行了一个 nginx-gunicorn-flask 设置,我不断从 gunicorn 获得以下信息:
[2019-04-19 20:50:49 +0000] [3345] [DEBUG] POST /
[2019-04-19 20:50:49 +0000] [3345] [DEBUG] Ignoring EPIPE
Run Code Online (Sandbox Code Playgroud)
在 100 个请求中,大约有 23 个是这样出现的。在访问日志中只显示了 23 个请求,它们都是 200 个。
从 nginx 访问日志显示 504,在错误日志中我看到:
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"
Run Code Online (Sandbox Code Playgroud)
我试过设置
proxy_connect_timeout 75s;
proxy_read_timeout 300s;
Run Code Online (Sandbox Code Playgroud)
--timeout 300根据其他问题在 nginx 和gunicorn上的位置,但没有帮助。
来自 gunicorn 的消息并没有真正帮助确定原因,我没有找到任何相关信息
一直试图解决这个问题,我很感激任何想法。此外,这些请求中的每一个都需要大约 1-2 秒,并且 jmeter 显示出巨大的延迟,直到结果出现。
查看 gunicorn 的代码,这是一个与套接字有关的 errno.EPIPE 异常...
我遇到了类似的问题和超时错误,除了增加超时值之外,添加 Nginx 配置proxy_ignore_client_abort on;检查此线程和Nginx 文档
proxy_ignore_client_abort on;
Run Code Online (Sandbox Code Playgroud)
如果Gunicorn和NGINX运行在同一台服务器上,这可能是权限问题。
检查 Gunicorn 服务器正在运行您的应用程序的用户ps aux | grep 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
Run Code Online (Sandbox Code Playgroud)
启动NGINX并检查日志。
| 归档时间: |
|
| 查看次数: |
2926 次 |
| 最近记录: |