簡體   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