为什么我需要为简单的Flask应用程序使用Web服务器,中间件等?

时间:2015-08-17 03:23:06

标签: python nginx flask cherrypy gunicorn

我一直在开发一个简单的MVP应用程序,现在是时候将它部署到我的生产服务器以进行更彻底的外部测试。它永远不会带来繁重的流量负载,这只是我需要一小组用户进行测试的东西。

现在我总是走三层。 Nginx / Apache> Guncicorn / CherryPy / etc>烧瓶/ Django的/金字塔/瓶/等

我知道这是传统的智慧。但我从来没有真正花时间问为什么。我为所有这些设置了什么?

1 个答案:

答案 0 :(得分:2)

Django docs有关于所包含的开发服务器的说法:

  

我们已经将这个包含在Django中,所以你可以   快速开发,无需处理配置   生产服务器 - 例如Apache - 直到你准备好了   生产

     

现在是时候注意:不要在任何地方使用此服务器   类似于生产环境。它只适用于   发展。 (我们的业务是制作Web框架,而不是Web   服务器

立即想到Apache / Nginx优于dev服务器的两个优点:

  • Django dev服务器的设计并未考虑安全性。设计为通过网络公开的Apache / Nginx已经(并且继续)努力寻找/修复Django开发服务器所没有的漏洞。
  • 您提供的很多请求都是静态文件(图像,JS,CSS)。与用Python编写的服务器相比,Nginx和Apache在提供这些资产方面的效率要高得多。