B/S架构的web项目打包发布流程:

(事先安装好数据库、supervisord进程管理工具、nginx)

手动打包程序:(先上在服务器建好相应的目录,日志:.log,部署:.ini文件,项目可执行文件目录)

(1)打包为linux可执行的程序:GOOS=linux go build

(2)上传到服务器:scp 打包好的本地可执行文件名称 服务器用户名@服务器地址:服务器存放程序打包后的可执行文件目录

scp rentcarapisrv tonnn@服务器ip:/home/zhangyang/rentcarapisrv/

(3)建好日志存放的目录

第一次配置时加入在supervisordctl 配置文件 /etc/supervisord.conf 中加入

[include]

;files = relative/directory/.ini(配置文件中本来就有)

files = /etc/supervisord.d/.ini(新加入的配置) --各个程序进程配置文件存放的目录

(4)配置程序进程管理文件.ini

模版:

[program:rentcarapisrv]

directory=/home/zhangsan/rentcarapisrv/

command=/home/zhangsan/rentcarapisrv/rentcarapisrv -config=/home/zhangsan/rentcarapisrv/qcloud.toml -mode=RELEASE

stdout_logfile=/data/log/rentcarapisrv/rentcarapisrv.log

stdout_logfile_backups=50

redirect_stderr=true

autostart=true

autorestart=true

(5)将新构建的进程加入进程管理任务列表中: sudo supervisorctl update(到此后台部署完毕)

// 部署前端

(6)前端拷贝打包代码方法和后台程序一致(例如vue项目打包:npm node build )将生成的dist可执行文件上传到服务器

(7)增加nginx配置文件 zhangsan.conf

文件内容:

server {

listen 9988(默认80端口);

server_name api.rentcar.com;

#charset koi8-r;

access_log /var/log/nginx/log/zhangsan.access.log main;#nginx文件日志

error_log /var/log/nginx/log/zhangsan.error.log;

location / {

root /home/zhangsan/rentcarapp/dist; #前端可执行文件在服务器上的目录

index index.html index.htm;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

location ~\.(jpg|jpeg|png|js|css) {

root /home/zhangsan/rentcarapp/dist;#前端静态资源在服务器上的目录

expires 30d;

}

(8)让nginx配置文件生效

第一步:sudo nginx -t 检测配置是否生效

第二步:sudo nginx -s reload(重新加载nginx)

有疑问加站长微信联系(非本文作者)