前后端分离项目的部署
提示
说明:Vue+flask。
# 前端
构建包
npm run build
1
上传文件到/data/wwwroot/workload目录
nginx配置
workload_api.conf
upstream workload { server 127.0.0.1:8080; } server{ listen 80; server_name api.birenchong.cn; location / { proxy_pass http://workload; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16workload.conf
server{ listen 80; server_name admin.birenchong.cn; index index.html; root /data/wwwroot/workload; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; } location ~ /.well-known { allow all; } location ~ /\. { deny all; } }
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
# 后端
环境:python3
上传后端项目文件
在项目文件主目录下创建虚拟环境
python3 -m venv workload_env
1激活环境
source workload_env/bin/activate
1安装项目需要的包
pip3 install -r requirement.txt
1数据库有变更的话,要进行升级(第一次部署要初始化数据库,具体操作见mysql操作)
# 提交变更 python3 manage.py db migrate -m "init message" # 升级变更 python3 manage.py db upgrade
1
2
3
4启动
nohup gunicorn manage:app -c gunicorn.conf.py &
1
# mysql
创建数据库
create database workload_pro default character set utf8mb4 collate utf8mb4_general_ci;
1在虚拟环境中初始化数据库
# 初始化 python3 manage.py db init # 提交变更 python3 manage.py db migrate -m "init message" # 升级变更 python3 manage.py db upgrade
1
2
3
4
5
6mysql数据库导入数据
# 从其他数据库导出 mysqldump -uroot -p -t workload_dev > workload_dev.sql # 导入 mysql -uroot -p workload_pro < workload_dev.sql
1
2
3
4
# docker
# 外网服务器构建镜像并导出
Dockerfile
FROM python:3.6
WORKDIR /data/workload_api
COPY requirements.txt ./
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
COPY . .
CMD ["gunicorn", "manage:app", "-c", "./gunicorn.conf.py"]
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
构建Docker镜像
docker build -t 'workload_api' .
1
查看镜像列表
docker images
1
导出镜像
docker save workload_api > /data/workload_api/workload_api.tar
1
# 内网服务器导入镜像并启动
导入镜像
docker load < /data/workload_api/workload_api.tar
1
临时运行docker镜像
docker run -it --rm -v /data/workload_api:/data/workload_api -p 8080:80 workload_api
1
以daemon方式运行
docker run -d -v /data/workload_api:/data/workload_api -p 8080:80 --name workload_api:v1 workload_api
1
Last Updated: 2021/07/01, 17:53:37