python web 部署
web开发中,各种语言争奇斗艳,web的部署方面,却没有太多的方式。简单而已,大概都是 nginx 做前端代理,中间 webservice 调用程序脚本。大概方式:nginx + webservice + script
nginx 不用多说,一个高性能的web服务器。通常用来在前端做反向代理服务器。所谓正向与反向(reverse),只是英文说法翻译。代理服务,简而言之,一个请求经过代理服务器从局域网发出,然后到达互联网上服务器,这个过程的代理为正向代理。如果一个请求,从互联网过来,先进入代理服务器,再由代理服务器转发给局域网的目标服务器,这个时候,代理服务器为反向代理(相对正向而言)。
正向代理:{ 客户端 ---》 代理服务器 } ---》 服务器
反向代理:客户端 ---》 { 代理服务器 ---》 服务器 }
{} 表示局域网
nginx既可以做正向,也可以做反向。
webservice 的方式同样也有很多方式。常见的有FastCGI
,WSGI
等。我们采用gunicorn
为 wsgi容器。python为服务器script,采用flask
框架。同时采用supervisor管理服务器进程。也就是最终的部署方式为:nginx + gunicorn + flask ++ supervisor
创建一个项目
mkdir myproject
创建 python 虚拟环境
virtualenv 可以说是 python 的一个大杀器。用来在一个系统中创建不同的 python 隔离环境。相互之间还不会影响,使用简单到令人发指。(我的工作路径是 /home/rsj217/rsj217
)
mkdir myproject
cd myproject
virtualenv venv
创建了 venv 环境之后,激活就可以了
source venv/bin/activate