django/flask+gunicorn+supervisor+nginx部署

最近进行了两次基于python的服务环境部署,现总结一下,以免忘记:

1、操作系统:centos7.x

2、部署经过:

【1】安装python3:下载python3安装包,解压,配置,编译和安装。这个安装过程还比较顺序,但也因系统自带python2的原因要进行区分,以及环境变量添加,软链接的建立等原因花费较长时间。

【2】因为django/flask、gunicorn以及supervisor都是在项目中的虚拟环境下安装的,所以系统环境就不用手动安装了。

【3】安装nginx,这个是相当折腾,首先因为我的flask项目是迁移另外服务器的环境过来,所以想保持两个环境完全一样。第一次安装的时候都按照网上教程下载,解压,配置(默认配置),编译和安装,安装好后发现配置与待迁移服务器不同,缺少一些第三方模块,网上教程都是要重新加配置参数,编译安装,但利用nginx -V获取待迁移服务器配置重新在新的服务器上进行配置时,发现各种报错,没办法只能缺啥补啥,这个过程相当磨人,经过一顿猛搜终于安装成功。然后是配置nginx.conf,配置时发现原配置里还链接了好几个.conf,真是感觉怎么复杂怎么来,没办法,原样照抄,都拷贝过来,再逐一修改。

【4】因为我的项目都是用公司建的gitlab进行代码管理,所以我还要装一个CI/CD的持续集成环境。首先要在目标服务器上安装gitlab-runner,安装过程都差不多,下载,解压,配置,编译和安装,然后是注册,要输入gitlab的url和token等参数,最后在项目中修改自己的部署脚本.yml文件。

【5】安装mongodb,安装过程比较顺利,安装完成后还需要进行用户密码等的配置,需要建立3个用户admin、root和自己的数据库用户,用到的命令mongo,use db, db.createUser, show users, show dbs, show collections等。最后测试连接字符串:mongodb://username:password@localhost:27017/dbname,记得修改你项目中的数据连接配置。

【6】安装redis,redis安装没什么问题,就是安装好后,需要将redis改为服务,并后台启动,开机启动等配置。要在system目录下新建redis.service文件。

【7】调试及测试。

3、总结:

【1】部署过程要熟悉centos的各种命令,比如:yum包管理器命令,whereis、find查找命令,新建文件touch,新建文件夹mkdir,移除文件或文件夹rm,重命名mv,python虚拟环境的创建、激活、退出激活等,nginx服务的启动,配置重载,停止等操作,chmod提示权限,chown改变所有者,添加用户和用户组groupadd、useradd

【2】nginx安装配置最为复杂,特别是安装第三方依赖包的过程,其次配置conf也比较麻烦,另外,gitlab-runner在运行脚本时会提示各种没权限,需要在su root中添加gitlab-runner用户的免密操作权限。

上一篇:CentOS部署ASP NetCore网站守护Supervisor守护进程的坑坑


下一篇:Supervisor守护进程配置及使用