WSGI服务器和HTTP服务器是否需要服务于Flask应用程序?

WSGI服务器和HTTP服务器是否需要服务于Flask应用程序?

使用uWSGI和Nginx设置Flask是相当困难的,即使使用构建脚本,也需要相当长的时间,并且必须将其记录到指令中,以便稍后复制。

如果我没有计划在服务器上加载大量负载(这是对公众隐藏的),那么在没有uWSGI的情况下运行它是否有意义呢?(烧瓶可以听一个端口。Nginx可以直接转发请求吗?)

即使是Nginx,也不用在端口上运行裸露的烧瓶应用程序,这有意义吗?


慕后森
浏览 792回答 2
2回答

临摹微笑

当您“运行Flask”时,您实际上是在运行Werkzeug的开发WSGI服务器,并将您的Flask应用程序作为WSGI可调用的。开发服务器不打算用于生产。它的设计并不是特别高效、稳定或安全。将Werkzeugdev服务器替换为生产就绪的WSGI服务器,如Gunicorn或uWSGi,无论该应用程序在哪里可用。答案类似于“我是否应该使用Web服务器”。WSGI服务器碰巧有HTTP服务器,但它们不如专用的生产HTTP服务器(Nginx、Apache等)好。烧瓶文件如何以各种方式部署。许多托管提供商也有关于部署Python或Flask的文档。

慕丝7291255

想必您已经有了一个Flask应用程序对象并设置了路由,但是如果您像这样创建应用程序:import flask app = flask.Flask(__name__)然后设置你的@app.route()S,然后当您想启动应用程序时:import gevent app_server = gevent.wsgi.WSGIServer((host, port), app)app_server.serve_forever()然后,您可以直接运行您的应用程序,而不必告诉gunicorn或uWSGI或其他任何东西来为您运行它。我有一个例子,我想要用烧瓶来构建一个Web应用程序(一个RESTAPI服务),并且发现无法与其他非烧瓶、非Web服务元素组合水瓶是一个问题。我最终发现gevent.wsgi.WSGIServer这正是我所需要的。在打电话到app_server.serve_forever(),你可以打电话app_server.stop()当你的应用程序想退出的时候。在我的部署中,我的应用程序正在侦听localhost:使用烧瓶和gEvent,然后在另一个端口上有nginx反向代理HTTPS请求,并将它们转发到本地主机上的烧瓶服务。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python