1 回答

TA贡献1712条经验 获得超3个赞
该瓶的文件指出:
虽然轻量级且易于使用,但 Flask 的内置服务器不适合生产,因为它不能很好地扩展。此处记录了一些可用于在生产中正确运行 Flask 的选项。
该文档还说明了使用 WSGI 服务器部署 Web 应用程序的几种方法。WSGI(Web 服务器网关接口)是一种标准,用于将来自 Web 服务器的请求转发到用 Python 编写的 Web 应用程序。您将需要使用 WSGI 服务器在您的主机上运行您的网站,因为听起来您正在尝试将 Flask 应用程序部署到生产环境中。
为了回答您最初的问题,当您尝试在端口 80 上运行 Flask 库时,它会故意抛出一个错误,因为它们明确指出您不应将 Flask 的内置服务器用于生产用途。这是您的堆栈跟踪的这一部分:
Use a production WSGI server instead. * Debug mode: off
和
socket.error: [Errno 1] Operation not permitted
对于懒惰的人,或者如果上面的链接失效了,这里是一个使用 Gunicorn 的例子(直接从上面的文档链接复制)
独角兽
Gunicorn 'Green Unicorn' 是 UNIX 的 WSGI HTTP 服务器。这是一个从 Ruby 的 Unicorn 项目移植过来的 pre-fork worker 模型。它同时支持 eventlet 和 greenlet。在此服务器上运行 Flask 应用程序非常简单:
gunicorn myproject:app
Gunicorn 提供了许多命令行选项——参见 gunicorn -h。例如,要运行具有 4 个工作进程 (-w 4) 绑定到本地主机端口 4000 (-b 127.0.0.1:4000) 的 Flask 应用程序:
gunicorn -w 4 -b 127.0.0.1:4000 myproject:app
添加回答
举报