首页 新闻 会员 周边 捐助

关于flask部署时服务器的问题

0
[待解决问题]

网上都说flask用的werkzeug自带的服务器,部署到生产环境不合适,推荐适用其他类似uWSGI这种的中间件,不太明白自带服务器具体差在哪些方面,而像uWSGI这种会强在哪里,这两个应该算是一个问题了,有懂的大神麻烦指点下,谢谢

还有一点不太明白的地方,如果使用uWSGI的话启动的接口也是那个run_simple吗,是的话最终还是要使用自带的服务器啊?

still_walking的主页 still_walking | 菜鸟二级 | 园豆:204
提问于:2018-11-01 16:19
< >
分享
所有回答(2)
0

稳定性,并发性,
uWSGI只能在Linux上跑——两个月前的情况,

若要知道具体差在哪里,请问你准备花多少时间去研究?

快乐的欧阳天美1114 | 园豆:4004 (老鸟四级) | 2018-11-01 16:33

谢谢回答,目前公司的服务器就是在Linux上,而且也没有加uWSGI,只是用nginx和supervisor跑起来,这个相当于用了werkzeug自带的服务器了,感觉肯定重新弄的,但是不太懂,网上看了下说这些的比较少,所以问问,至于多长时间,想弄明白的弄明白就可以,谢谢

支持(0) 反对(0) still_walking | 园豆:204 (菜鸟二级) | 2018-11-01 16:40
0

时间过的好快,我自己也做了几年开发了,知道的稍微多一点,就自己来结贴吧。

  1. 从进程线程模型来看,自带的服务器在不开启debug模式下应该是单进程单线程的,开启debug模式下应该是多了一个检测代码变动线程,所以正常情况下只有一个线程去处理http请求,而flask是处理请求是以同步的方式进行的,所以处理能力是显而易见的有限。
    而uwsgi服务器可以自定义进程数量和线程数量,结合flask的local thread功能,每个线程在一个时间点可以处理一个请求,而且各请求间是相互隔离的,所以同时处理的请求数为 工作worker数量(注意不包含master worker)* 线程数,并发数相对于自带服务器会高一些。

  2. 从io复用技术来看,flask使用的是select方法,会有连接数限制,内存消耗也会高一些,uwsgi的应该是支持epoll的(未确认)

单从效率上看,确实像官方文档说的,应该使用像uwsgi这种专门的web服务器,而且这种服务器一般对tcp连接,内存管理等关键系统资源的使用做优化,而且还有各种监控,日志等的支持。

still_walking | 园豆:204 (菜鸟二级) | 2021-12-01 17:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册