我一直试图找出如何正确部署我使用Flask编写的Python应用程序。它确实有效,但我所看到的只是如何使用FastCGI,uWSGI或其他类似方式进行部署,这让我相信我的方法是错误的。
基本上我有一个Flask应用程序,它有/api/1.0/news/
这样的路径,当我在本地运行应用程序时,我通过例如访问它。 http://localhost:5000/api/1.0/news/
我得到了一个我期待的jsonified回应。
现在,在我使用nginx的VPS上,我以相同的方式设置它并允许ufw
中的端口5000。所以当在服务器上运行时:
python manage.py runserver -h 0.0.0.0
它就像在我的本地环境中一样运行它。然后,我可以使用真实IP访问相同的功能,而JSON响应正是我使用浏览器打开http://1.2.3.4:5000/api/1.0/news
时所期望的。
在Ubuntu 14.04的screen
中保持这样运行是不是错了?从我收集的内容来看,FastCGI,uWSGI等的目的只是将请求转换为应用程序理解的内容?或者,与上述方法相比,它们还提供了一些其他关键/重要优势吗?
它的目的是成为我的面向公众的前端内部使用的非公共API。第三方无法访问API。我将在稍后的Python应用程序中进行身份验证。
答案 0 :(得分:1)
正如here所解释的那样,“Flask的内置服务器不适合生产,因为它不能很好地扩展,默认情况下一次只能提供一个请求。”,而其他方法如FastCGI和uWSGI则这一点。