我一直在使用nginx/gunicorn和Flask为我的应用程序开发一个新的开发平台.
Ops-wise,一切正常 - 我遇到的问题是调试Flask层.当我的代码出现错误时,我只是将500错误返回到浏览器,并且没有任何内容显示在控制台或我的日志中.
我尝试了很多不同的配置/选项......我想我一定是想错过一些明显的东西.
我的gunicorn.conf:
import os
bind = '127.0.0.1:8002'
workers = 3
backlog = 2048
worker_class = "sync"
debug = True
proc_name = 'gunicorn.proc'
pidfile = '/tmp/gunicorn.pid'
logfile = '/var/log/gunicorn/debug.log'
loglevel = 'debug'
Run Code Online (Sandbox Code Playgroud)
borks-testserver.py的一些Flask代码示例:
from flask import Flask
from flask import render_template_string
from werkzeug.contrib.fixers import ProxyFix
app = Flask(__name__)
@app.route('/')
def index():
n = 1/0
return "DIV/0 worked!"
Run Code Online (Sandbox Code Playgroud)
最后,命令在gunicorn运行烧瓶应用程序:
gunicorn -c gunicorn.conf.py testserver:app
Run Code Online (Sandbox Code Playgroud)
谢谢你们
我在PyCharm社区版中安装了烧瓶插件,我在烧瓶应用程序中只有这个简单的代码:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>Hello!</h1>'
if __name__ == "__main__":
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
我得到这个消息:
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead
* Restarting with stat
* Debugger is active!
* Debugger PIN: 123-456-789
* Running on http://127.0.0.1:5000/
Run Code Online (Sandbox Code Playgroud)
当我来到http://127.0.0.1:5000时,它说:"在服务器上找不到请求的URL.如果你手动输入了URL,请检查你的拼写,然后再试一次."
使用uWSGI和Nginx设置Flask非常困难,即使使用buildout脚本也需要很长时间,并且必须将其记录到稍后要再现的指令中.
如果我不计划服务器上的大负载(它是公开的隐藏),没有uWSGI运行它是否有意义?(Flask可以收听端口.Nginx可以转发请求吗?)
甚至不使用Nginx,只是在端口上运行裸烧瓶应用程序是否有意义?