Flask容器化部署原理与实现
本文将介绍Flask的部署方案:Flask + Nginx + uWSGI,并使用docker进行容器化部署,部署的实例来源 Flask开发初探 ,操作系统为ubuntu。 Flask系列文章 : Flask开发初探 WSGI到底是什么 Flask源码分析一:服务启动 Flask路由内部实现原理 部署方案 在开发时,我们使用flask run命令启动的开发服务器是werkzeug提供的,但是这种方式目的是为了开发,不能很好的扩展,不适合生产部署。生产部署,我们需要一个更强健,性能更高的WSGI服务器(关于WSGI,可参考 WSGI到底是什么 ,常用的服务器有:uWSGI、Gunicorn等,本文以uWSGI举例。 像uWSGI这类WSGI服务器内置了Web服务器,所以我们不需要web服务器也可以与客户端交换数据,处理请求和响应,但是内置的web服务器不够强健,一般情况下都会使用一个常规的web服务器运行在前端,为WSGI服务器提供反向代理,web服务器选择Nginx,Nginx会把外部的请求转发给uWSGI处理,接收到响应后再返回给客户端,这样做的好处有: 提高静态文件的效率,因为Nginx处理静态文件的速度非常快 提升系统安全性,避免直接暴露WSGI服务器 提升程序处理能力,通过设置反向代理,配置负载均衡可以实现。 uWSGI配置 在使用uwsgi部署flask应用时