写在前面
服务器方案:supervisor+nginx
可部署:web应用、可执行的Linux后台应用
语言环境:nodejs、php、golang、linux shell(特定用户权限)
面向对象:物联网事业部开发人员(具备应用发布平台相应的登陆管理权限)
发布平台说明
用户登陆发布平台之后会有以下3个目录可供操作
1.【deployment】目录为项目发布目录
发布后服务器路径为 /usr/local/software/deployment/****(项目目录名称)
2.【init.d_conf】为设置应用开机启动目录
- 复制模板文件
- 参考下面配置文件修改相应的参数(*参数为必选项)
- php、普通web应用不需要设置此目录文件(依赖于nginx+php自启动)
- nodejs、golang等都需要在此目录配置相应的自启动文件
[program:test] ; 程序名称test*
; directory = /usr/local/software/go/code/src/fe_brdd_zk ; 程序的启动目录*
; command = npm run dev ;nodejs 应用发布dev 模式
; command = /bin/bash -c 'source "$0" && exec "$@"' /etc/profile ./fe_brdd_zk ;需要用到自定义系统环境变量的参照这条(如golang应用)
command = tail -f /dev/null ; 启动命令,可以看出与手动在命令行启动的命令是一样的*
autostart = true ; 在 supervisord 启动的时候也自动启动
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
user = root ; 用哪个用户启动
redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20 ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /usr/local/software/logs/test.log ; 日志文件*
stopasgroup=false ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false ;默认为false,向进程组发送kill信号,包括子进程
;
; ; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改 PYTHONPATH
; environment=PATH1="/usr/local/software/go/code/bin"
3.【nginx_conf】为nginx配置文件目录
- 复制模板文件
- 参考下面配置文件修改相应的参数(*参数为必选项)
- php、普通web应用不需要设置此目录文件(依赖于nginx+php自启动)
- nodejs、golang等都需要在此目录配置相应的自启动文件
有疑问加站长微信联系(非本文作者)