werkzeug文档指出它只能用于开发而不是生产。如果你想配备一个生产环境,建议使用 nginx、apache + uwsgi 等。
- 那么,如果生产环境使用 werkzeug,会发生什么情况呢?
- 不建议在生产中使用,因为它的性能很差? 如果它的性能很差,
- 但我看到werkzeug最初也支持多线程多进程,为什么它的性能很差?
- werkzeug和NGINX在性能上有什么区别,为什么?
TL;DR:编写一个健壮,快速和可扩展的HTTP服务器绝非易事,需要的不仅仅是"支持多线程多进程"。
文档指出,您不应该在生产中使用开发服务器:
开发服务器不应在生产系统上使用。它是专门为开发目的而设计的,在高负载下表现不佳。
这不会阻止您在werkzeug上构建应用程序(希望如此(,您只想使用生产就绪的HTTP服务器进行部署。
至于原因,上面已经明确说明:这个开发服务器没有设计为在负载下正确执行,而是一个实用的开发工具。正确处理负载是一个相当复杂的问题,这就是为什么有专门的HTTP服务器,如nginx,apache等 - 几乎所有服务器都用C编码 - 注意稳定性和性能。因此,如果您尝试在生产中使用werkzeug的开发服务器,会发生什么,它会在负载下变得非常慢,以至于您的网站将完全无法使用。您可能还会遇到内存使用问题(这可能会杀死您的服务器(以及安全问题 - 另外两点很难正确处理,最好留给专用,调试和优化的HTTP服务器。