我打电话给app.run(debug=True)我的flask文件。
app.run(debug=True)
并且已经将它与uWSGI和nginx一起部署(我遵循了这些说明)
uwsgi -s /tmp/uwsgi.sock -w flask_file_name:app -H /path/to/virtual/env --chmod-socket 666
但是,当我收到错误消息时,在浏览器或uWSGI日志中没有任何调试信息。
有任何想法吗?
flask_file_name.py:
from flask import Flask, make_response, Response, jsonify import json app = Flask(__name__) app.debug = True @app.route("/") def hello(): return "Hello World!" if __name__ == '__main__': app.run()
不能将Flask的debug选项与一起使用uWSGI,因为它不能在分叉环境中使用。
uWSGI
你会看到502,因为flask / werkzeug没有将任何数据发送到Web服务器,因此nginx将返回502。
你可以使用uWSGI中的–catch-exceptions选项模拟调试器(但请不要在生产环境中使用)
因此,你看到502s的原因就是因为这个。此修复程序是添加–catch-exceptions到uWSGI上执行。
catch-exceptions
如果要使werkzeug错误页面与uwsgi一起使用,请尝试使用werkzeug的DebuggedApplication中间件:
DebuggedApplication
from werkzeug.debug import DebuggedApplication app.wsgi_app = DebuggedApplication(app.wsgi_app, True)
那应该可以解决问题,但不要忘记仅在开发环境中这样做。