Python 的安装与使用
参见无咎的另外一篇文章:Linux 生产环境安装 Python
Supervisor 安装与使用
参见无咎的另外一篇文章:Supervisor 使用详解
项目流程配置
以下所出现的 xxx 为项目名,不再额外申明
目录创建
1 2 3 4
| mkdir -p /opt/pysite/xxx mkdir -p /opt/pysite/env/xxx mkdir -p /opt/pysite/sock mkdir -p /opt/packages
|
项目 uwsgi 配置
文件名为 xxx_uwsgi.ini
文件放在代码根目录下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| [uwsgi]
socket=127.0.0.1:10001 wsgi-file=/opt/pysite/xxx/app.py callable=app touch-reload=/opt/pysite/xxx/
max-requests=5000
harakiri=60
processes=1
threads = 2
pidfile=/opt/pysite/sock/xxx.pid buffer-size = 32768
log-maxsize=50000000
virtualenv =/opt/pysite/env/xxx
python-autoreload=1
|
supervisord 子进程配置文件
给需要管理的子进程(程序)编写一个配置文件,放在/etc/supervisor.d/目录下,以.ini 作为扩展名(每个进程的配置文件都可以单独分拆也可以把相关的脚本放一起)。如任意定义一个和脚本相关的项目名称的选项组:
文件名为/etc/supervisord.d/xxx.ini
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| [program:xxx]
command=uwsgi --ini /opt/pysite/xxx/xxx_uwsgi.ini
directory = /opt/pysite/xxx
startsecs=10
stopwaitsecs=5
autostart=true
autorestart=true
stdout_logfile=/opt/logs/xxx/supervisord.log
stderr_logfile=/opt/logs/xxx/supervisord.err stopasgroup=true killasgroup=true
|
云效流水线配置
Python 构建上传到仓库
Python 构建
无命令,默认即可
构建物上传
- 制品名称:Artifacts_${PIPELINE_ID}
- 打包路径:.
注意打包路径是【.】,不是空
主机部署
制品
选择前一步骤所设置的制品名称即可
部署配置
- 下载路径:/opt/packages/xxx.tgz
- 部署脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| supervisorctl stop xxx rm -rf /opt/pysite/xxx/* tar xf /opt/packages/xxx.tgz -o -C /opt/pysite/xxx/;
cd /opt/pysite/xxx
supervisorctl start xxx
|
Supervisor 命令说明
常用命令
1 2 3 4 5 6
| supervisorctl status //查看所有进程的状态 supervisorctl stop xxx //停止xxx应用 supervisorctl start xxx //启动xxx应用 supervisorctl restart xxx //重启xxx应用 supervisorctl update //配置文件修改后使用该命令加载新的配置 supervisorctl reload //重新启动配置中的所有程序
|
Nginx 配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| .... server { listen 80; server_name xxxx; root /opt/pysite/xxx;
......
location / { include uwsgi_params; uwsgi_pass 127.0.0.1:10001; }
location /static/ { alias /opt/pysite/xxx/; }
...... }
|