前沿
后端部署:flask+gunicorn+nginx
前端:nginx
liunx服務(wù)器安裝內(nèi)容:
nginx爹谭,python3虛擬環(huán)境(擁有requirement.txt上所有依賴)遏佣,yarn漂辐,npm夹抗,mysql,redis琉用。
前端部署
1焊傅、登錄linux機(jī)器
2、切換root身份:sudo -i
3摊唇、進(jìn)入python3虛擬環(huán)境
4妥色、進(jìn)入凱爾前端項(xiàng)目:cd xx/Kayle/kayle_fe/
5、master分支下遏片,拉取最新代碼:git branch& git pull
6嘹害、項(xiàng)目根目錄下撮竿,執(zhí)行npm run build,打出最新的dist包
7笔呀、將最新dist包操作替換:cp -rf dist/ /var/www/dist/ (其中?/var/www/dist 為自己本地nginx location匹配的文件地址幢踏,監(jiān)聽端口為8088)
另外配置了/api代理和跨域相關(guān)的內(nèi)容。所有項(xiàng)目內(nèi)/api的請求接口都會打到http://0.0.0.0.3333端口上许师。
8房蝉、重啟nginx:nginx -s reload 則新的前端內(nèi)容即可生效。
后端部署
承接前端部署1微渠、2搭幻,3步驟
3、進(jìn)入后端項(xiàng)目地址: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 內(nèi)云芦。
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監(jiān)聽 3333 端口桌肴。
8、重啟nginx:nginx -s reload 則新的前端內(nèi)容即可生效琉历。
其他
定時任務(wù):可以用crontab直接在服務(wù)器上做定時坠七,這邊用Jenkins做了定時工作。
一些有用的linux命令:
根據(jù)端口查看進(jìn)程:lsof -i:端口號
grep匹配進(jìn)程:ps -ef|grep celery
殺掉進(jìn)程:kill -9 pid
至此旗笔,手動訪問前端頁面即可灼捂。
其他:
mysql創(chuàng)建表sql:
user_list:
CREATE TABLE `user_list` (
? `id` int NOT NULL AUTO_INCREMENT COMMENT '默認(rèn)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 '用戶創(chuàng)建時間',
? `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 '默認(rèn)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 '默認(rèn)ID',
? `plan_userId` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '計(jì)劃創(chuàng)建用戶ID',
? `plan_user` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '計(jì)劃創(chuàng)建用戶名稱',
? `client_version` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '客戶端版本',
? `plan_start` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '計(jì)劃開始時間',
? `plan_end` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '計(jì)劃結(jié)束時間',
? `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 '默認(rèn)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 '用戶請求數(shù)據(jù),包括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 '請求協(xié)議',
? `req_start` varchar(255) DEFAULT NULL COMMENT '請求開始時間',
? `req_end` varchar(255) DEFAULT NULL COMMENT '請求結(jié)束時間',
? `req_cookie` text COMMENT '請求cookie',
? `res_status_code` int DEFAULT NULL COMMENT '返回狀態(tài)碼',
? `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 '返回結(jié)束時間',
? `exprie_time` varchar(255) DEFAULT NULL COMMENT '接口失效時間',
? `mitm_id` varchar(255) DEFAULT NULL COMMENT 'mitm對應(yīng)的ID',
? `content` varchar(255) DEFAULT NULL COMMENT '接口所屬業(yè)務(wù)',
? `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配置: