繁体   English   中英

Python Flask超时了吗? FLASK + NGINX + uWSGI

[英]Python Flask time out? FLASK + NGINX + uWSGI

和往常一样,我还有另一个很奇怪的问题。 我有一个可以从任何地方访问的NGINX Web服务器,它在uWSGI的帮助下为python文件提供服务。 在python文件中,我利用mysql-connector库从同一台计算机上运行的mysql数据库中获取信息。 (该机器是运行树莓派的树莓派)。 我有一个索引页面,它仅返回一个字符串,和一个/ resources页面,该页面与数据库连接并在json中返回一些信息。

付出或花费15分钟后,一切都会崩溃。 服务器变得无响应,并显示“错误的网关”错误或“发生超时”错误。 我只是重新启动了uWSGI,以缩小原因范围,然后使我的应用重新恢复在线。 这意味着无论如何就是我的烧瓶服务器。

我使用了以下链接:我使用了以下链接: http : //vladikk.com/2013/09/12/serving-flask-with-nginx-on-ubuntu/

我发现很难找到有关此信息。 会是什么呢? 我该如何解决? 有哪些可能的解决方法?

UWSGI日志文件

时钟源:unix检测到的CPU内核数:4当前工作目录:/ home / pi检测到的二进制路径:/ usr / local / bin / uwsgi! 没有内部路由支持,使用pcre支持进行重建!!! *警告:您正在运行没有其主进程管理器的uWSGI 您的进程数限制为7336,您的内存页面大小为4096个字节(检测到的最大文件描述符数):65536锁定引擎:pthread健壮的互斥体雷锁:禁用(您可以使用--thunder-lock启用)uwsgi socket 0绑定到UNIX地址/ var / www / demoapp / demoapp_uwsgi.sock fd 3 Python版本:2.7.9(默认值,2016年9月17日,20:55:23)[GCC 4.9.2]将PythonHome设置为/ var / www / demoapp / venv Python线程支持已禁用。 您可以使用--enable-threads启用它 Python主解释器初始化为0x67b490,您的服务器套接字监听积压被限制为100个连接;对工作者进行正常操作的怜悯是60秒,对应于1个内核的64256字节(62 KB)映射 操作模式:单过程 在pythonpath中添加了/ var / www / demoapp /。 WSGI应用程序0(mountpoint ='')在0秒内在解释器0x67b490 pid上准备就绪:32459(默认应用程序) uWSGI在多种解释器模式下运行*产生了uWSGI worker 1(也是唯一的)(pid:32459,核心:1)

这是一个阻止工人的问题。

一个工作人员会阻塞,因为通常情况下,您将有一个工作人员接受请求并执行一个I / O操作,即从您的案例中读取数据库。 因为您只有一名工人,所以这成为问题。

请参阅文档以获取一些提示(您可以在此页面上搜索processes )。 您可以通过在命令行中使用-p num选项来增加工作程序数量,或者通过配置文件中的processes = num来增加工作数量(num是所需的整数)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM