为什么不能在生产中使用 Werkzeug?



werkzeug文档指出它只能用于开发而不是生产。如果你想配备一个生产环境,建议使用 nginx、apache + uwsgi 等。

  1. 那么,如果生产环境使用 werkzeug,会发生什么情况呢?
  2. 不建议在生产中使用,因为它的性能很差?
  3. 如果它的性能很差,
  4. 但我看到werkzeug最初也支持多线程多进程,为什么它的性能很差?
  5. werkzeug和NGINX在性能上有什么区别,为什么?

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

文档指出,您不应该在生产中使用开发服务器

开发服务器不应在生产系统上使用。它是专门为开发目的而设计的,在高负载下表现不佳。

这不会阻止您在werkzeug上构建应用程序(希望如此(,您只想使用生产就绪的HTTP服务器进行部署。

至于原因,上面已经明确说明:这个开发服务器没有设计为在负载下正确执行,而是一个实用的开发工具。正确处理负载是一个相当复杂的问题,这就是为什么有专门的HTTP服务器,如nginx,apache等 - 几乎所有服务器都用C编码 - 注意稳定性和性能。因此,如果您尝试在生产中使用werkzeug的开发服务器,会发生什么,它会在负载下变得非常慢,以至于您的网站将完全无法使用。您可能还会遇到内存使用问题(这可能会杀死您的服务器(以及安全问题 - 另外两点很难正确处理,最好留给专用,调试和优化的HTTP服务器。

相关内容

  • 没有找到相关文章

最新更新