前沿
后端部署:flask+gunicorn+nginx
前端:nginx
liunx服务器安装内容:
nginx,python3虚拟环境(拥有requirement.txt上所有依赖),yarn,npm,mysql,redis。
前端部署
1、登录linux机器
2、切换root身份:sudo -i
3、进入python3虚拟环境
4、进入凯尔前端项目:cd xx/Kayle/kayle_fe/
5、master分支下,拉取最新代码:git branch& git pull
6、项目根目录下,执行npm run build,打出最新的dist包
7、将最新dist包操作替换:cp -rf dist/ /var/www/dist/ (其中 /var/www/dist 为自己本地nginx location匹配的文件地址,监听端口为8088)
另外配置了/api代理和跨域相关的内容。所有项目内/api的请求接口都会打到http://0.0.0.0.3333端口上。
8、重启nginx:nginx -s reload 则新的前端内容即可生效。
后端部署
承接前端部署1、2,3步骤
3、进入后端项目地址:cd ../Kayle/kayle_fe/
4、master分支下,拉取最新代码:git branch& git pull
5、后台启动 gunicorn:nohup gunicorn -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker qa_tools_be:app -c gunicorn.conf.py > app/logs/gunicorn.log 2>&1 &
日志会打到 app/logs/gunicorn.log 内。
6、后台启动celery:nohup celery -A app.MCelery worker -l INFO --concurrency=4 > app/logs/celery.log 2>&1 &
7、查看/etc/nginx/sites-enabled 中kayle_be文件。
nginx监听 3333 端口。
8、重启nginx:nginx -s reload 则新的前端内容即可生效。
其他
定时任务:可以用crontab直接在服务器上做定时,这边用Jenkins做了定时工作。
一些有用的linux命令:
根据端口查看进程:lsof -i:端口号
grep匹配进程:ps -ef|grep celery
杀掉进程:kill -9 pid
至此,手动访问前端页面即可。
其他:
mysql创建表sql:
user_list:
CREATE TABLE `user_list` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '默认ID',
`username` varchar(255) DEFAULT NULL COMMENT '⽤户姓名',
`nick_name` varchar(255) NOT NULL COMMENT '用户汉字姓名',
`passward` varchar(255) DEFAULT NULL COMMENT '用户密码',
`user_id` varchar(255) DEFAULT NULL COMMENT '用户ID',
`create_time` varchar(255) DEFAULT NULL COMMENT '用户创建时间',
`update_time` varchar(255) DEFAULT NULL COMMENT '用户更新时间',
`user_icon` varchar(255) DEFAULT NULL COMMENT '用户头像',
`user_message` text COMMENT '用户信息',
PRIMARY KEY (`id`),
KEY `user_id` (`username`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
temp_mitmproxy_list:
CREATE TABLE `temp_mitmproxy_list` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '默认ID',
`user_id` varchar(255) DEFAULT NULL COMMENT '用户ID',
`port` varchar(255) DEFAULT NULL COMMENT 'mitmproxy开辟的端口号',
`host_list` varchar(255) DEFAULT NULL COMMENT '请求过滤host列表',
`expire_time` varchar(255) DEFAULT NULL COMMENT '接口失效时间',
`mitm_id` varchar(255) NOT NULL,
PRIMARY KEY (`mitm_id`) USING BTREE,
KEY `id-unique` (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=176 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
history_plan_list:
CREATE TABLE `history_plan_list` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '默认ID',
`plan_userId` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '计划创建用户ID',
`plan_user` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '计划创建用户名称',
`client_version` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '客户端版本',
`plan_start` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '计划开始时间',
`plan_end` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '计划结束时间',
`core_rate` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '接口覆盖率',
`core_data` text COLLATE utf8mb4_general_ci NOT NULL COMMENT '接口列表集',
PRIMARY KEY (`id`) USING BTREE,
KEY `id-unique` (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=138 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
core_interface_list:
CREATE TABLE `core_interface_list` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '默认ID',
`interface_id` varchar(255) DEFAULT NULL COMMENT '唯一索引ID',
`interface_path` varchar(255) DEFAULT NULL COMMENT '请求URL',
`req_header` text COMMENT '请求头',
`user_id` varchar(255) DEFAULT NULL COMMENT '用户ID',
`user_name` varchar(255) NOT NULL COMMENT '用户姓名',
`req_data` varchar(255) DEFAULT NULL COMMENT '用户请求数据,包括GET和POST',
`req_form` varchar(255) NOT NULL COMMENT '请求form',
`req_query` varchar(255) NOT NULL COMMENT '请求query',
`req_method` varchar(255) DEFAULT NULL COMMENT '请求方式',
`req_scheme` varchar(255) DEFAULT NULL COMMENT '请求协议',
`req_start` varchar(255) DEFAULT NULL COMMENT '请求开始时间',
`req_end` varchar(255) DEFAULT NULL COMMENT '请求结束时间',
`req_cookie` text COMMENT '请求cookie',
`res_status_code` int DEFAULT NULL COMMENT '返回状态码',
`res_header` text COMMENT '返回header',
`res_text` mediumtext NOT NULL,
`res_cookie` text COMMENT '返回cookie',
`res_start` varchar(255) DEFAULT NULL COMMENT '返回开始时间',
`res_end` varchar(255) DEFAULT NULL COMMENT '返回结束时间',
`exprie_time` varchar(255) DEFAULT NULL COMMENT '接口失效时间',
`mitm_id` varchar(255) DEFAULT NULL COMMENT 'mitm对应的ID',
`content` varchar(255) DEFAULT NULL COMMENT '接口所属业务',
`interface_regular` varchar(255) DEFAULT NULL COMMENT '接口匹配正则',
`interface_desc` varchar(255) DEFAULT NULL COMMENT '接口功能说明',
PRIMARY KEY (`id`),
KEY `interface_id-unique` (`interface_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=153 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
nginx BE.conf配置:
nginx FE.conf配置: