否。捆绑服务器是开发服务器。它不是考虑到生产环境的设计。
>默认情况下,它不能一次处理多个请求。
>如果您打开调试模式并弹出错误,它会打开一个允许在服务器上执行任意代码的shell(think os.system(‘rm -rf /’))。
>开发服务器不能很好地扩展。
Flask使用Werkzeug的开发服务器,文档说明了同样的事情:
The development server is not intended to be used on production systems. It was designed especially for development purposes and performs poorly under high load. For deployment setups have a look at the 07000 pages.
如果您正在服务任何静态资产(如图像或视频),需要低级缓存或具有较高的并发性需求,建议使用像nginx这样的网络服务器,并处理所有请求。
以肮脏的ASCII格式:
+----------+
| Client 2 |
+----------+
|
V
+----------+ +-------+ +----------+
| Client 1 |----->| nginx |
+----------+ +-------+ +----------+
|
V
/--------------------\
| useful nginx stuff |
\--------------------/
|
V
+-------------+
| WSGI server |
+-------------+
要实际运行WSGI服务器进程,可以使用Supervisor.如果由于某种原因失败,将自动重新启动服务器,保留日志并作为守护程序运行,以便服务器启动时启动服务。