Python 为什么可以';在生产中不使用werkzeug?

Python 为什么可以';在生产中不使用werkzeug?,python,web-services,nginx,flask,werkzeug,Python,Web Services,Nginx,Flask,Werkzeug,werkzeug文档声明它只能用于开发,而不能用于生产。如果您希望配备生产环境,建议使用nginx、apache+uwsgi等 那么,如果生产环境使用werkzeug会发生什么呢 不推荐在生产中使用,因为它性能差 如果它的性能差,但我看到werkzeug原来也支持多线程多进程,为什么它的性能差呢 werkzeug和NGINX在性能上有什么区别?为什么 TL;DR:编写一个健壮、快速和可扩展的HTTP服务器绝非易事,它需要的不仅仅是“支持多线程多进程” 您不应该在生产中使用开发服务器的内容: 开发

werkzeug文档声明它只能用于开发,而不能用于生产。如果您希望配备生产环境,建议使用nginx、apache+uwsgi等

  • 那么,如果生产环境使用werkzeug会发生什么呢
  • 不推荐在生产中使用,因为它性能差
  • 如果它的性能差,但我看到werkzeug原来也支持多线程多进程,为什么它的性能差呢
  • werkzeug和NGINX在性能上有什么区别?为什么

  • TL;DR:编写一个健壮、快速和可扩展的HTTP服务器绝非易事,它需要的不仅仅是“支持多线程多进程”

    您不应该在生产中使用开发服务器的内容:

    开发服务器不用于生产系统。它是专门为开发目的而设计的,在高负载下性能很差

    这并不妨碍您在werkzeug上构建应用程序(希望如此),您只需要使用一个生产就绪的HTTP服务器进行部署


    至于原因,上面已经清楚地说明了:这个开发服务器并不是为了在负载下正确执行而设计的,而是为了成为一个实用的开发工具。正确处理负载是一个相当复杂的问题,这就是为什么有像nginx、apache等专门的HTTP服务器——几乎所有这些服务器都是用C编写的——并注意稳定性和性能。因此,如果您尝试在生产中使用werkzeug的开发服务器,将会发生的情况是,它在负载下会变得非常缓慢,以至于您的站点完全无法使用。您可能还存在内存使用问题(这可能会导致服务器死机)和安全问题—另外两个问题很难解决,最好留给专门的、经过调试和优化的HTTP服务器解决

    一,。您可以在生产中使用它,但它的性能会很差。2.这就是文档中所说的:“它是专门为开发目的设计的,在高负载下性能很差。”3(顺便提一下4)。如果软件不是为做某件事而设计的,那么询问它为什么不做就会得到一个势利的回答,因为它不是为做这件事而设计的。这有点像问为什么SUV不能爬树。如果你想问开发人员他们为什么做出这些设计决定,那么也许这不是最好的提问方式。