解決flask的502錯誤:upstream prematurely closed connection while reading response header from upstream


我在使用 tiangolo/uwsgi-nginx-flask 部署flask應用的時候,經常運行一會兒就出現502錯誤,重新啟動容器后,就恢復。

且經常會出現數據更新后,刷新結果不一致。

docker作者的github中也有人遇到類似問題。https://github.com/tiangolo/uwsgi-nginx-flask-docker/issues/92

查詢容器的日志可以看到upstream prematurely closed connection while reading response header from upstream

說是連接沒有釋放。現將解決方案記錄一下:

http://flask.pocoo.org/docs/1.0/patterns/sqlalchemy/

在flask文檔中有介紹使用一個裝飾器來進行session釋放。

from yourapplication.database import db_session

@app.teardown_appcontext
def shutdown_session(exception=None):
    db_session.remove()

 

具體適用方法如下:

一:

from flask import Flask
from yourapplication.database import db_session
app = Flask(name)
@app.teardown_appcontext
def shutdown_session(exception=None):
  db_session.remove()

二:

from flask import Flask
from yourapplication.database import db_session
def create_app():
    app = Flask(name)
    return app
app = create_app()

@app.teardown_appcontext
def shutdown_session(exception=None):
    db_session.remove()

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM