python web部署
nginx + gunicorn + flask + supervisor的搭建 为什么要加nginx。 Nginx能更好地直接处理静态资源(通过一些http request header),而把动态资源转发给后端服务器 Nginx也可以缓存一些动态内容 Nginx可以进行多台机器的负载均衡 Nginx可以更方便的实施一些安全策略。gunicorn 直接暴露还是蛮危险的,nginx挡一层,过滤掉一些恶意IP,同样的gunicorn处理起来就比较麻烦了。 nginx常见的两种代理方式: 正向代理:{ 客户端 ---》 代理服务器 } ---》 服务器 反向代理:客户端 ---》 { 代理服务器 ---》 服务器 } {} 表示局域网 gunicorn: flask自带的app.run()服务,稳定性等各方面都不足,只适用于测试环境,线上环境还是要有专门的服务器,gunicorn和uWsgi就是常用的两个解决方案。 guincorn是支持wsgi协议的http server,gevent只是它支持的模式之一 ,是为了解决django、flask这些web框架自带wsgi server性能低下的问题。 supervisor: Linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行,我们就需要把它做成daemon