新增项目部署文档
This commit is contained in:
parent
334b66b4a5
commit
f5996560fb
275
项目部署.md
Normal file
275
项目部署.md
Normal file
@ -0,0 +1,275 @@
|
|||||||
|
# 项目部署
|
||||||
|
|
||||||
|
## 初始化工作
|
||||||
|
|
||||||
|
### 部署目录
|
||||||
|
|
||||||
|
根目录:/opt
|
||||||
|
|
||||||
|
项目目录:/opt/project
|
||||||
|
|
||||||
|
项目启动日志目录:/opt/logs
|
||||||
|
|
||||||
|
## 生产环境要求
|
||||||
|
|
||||||
|
服务器系统版本:Centos 7.2以上
|
||||||
|
|
||||||
|
| 软件名称 | 版本 |
|
||||||
|
| ---------- | ------------ |
|
||||||
|
| Python | >= 3.8 |
|
||||||
|
| Mysql | >= 8.0 |
|
||||||
|
| Nginx | >= 1.16 |
|
||||||
|
| Git | 最新,非必须 |
|
||||||
|
| Supervisor | >= 3.4.0 |
|
||||||
|
|
||||||
|
## 项目配置
|
||||||
|
|
||||||
|
### 接口项目配置
|
||||||
|
|
||||||
|
**项目主要配置信息:**
|
||||||
|
|
||||||
|
文件路径:kinit-api/application/settings.py
|
||||||
|
|
||||||
|
```python
|
||||||
|
# 关闭代码调试
|
||||||
|
DEBUG = False
|
||||||
|
```
|
||||||
|
|
||||||
|
**导出项目接口依赖包:**
|
||||||
|
|
||||||
|
kinit-api 根目录下执行命令:
|
||||||
|
|
||||||
|
```
|
||||||
|
pip freeze > requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
### 前端项目打包
|
||||||
|
|
||||||
|
kinit-admin 打包项目根目录下执行命令:
|
||||||
|
|
||||||
|
```
|
||||||
|
pnpm run build:pro
|
||||||
|
```
|
||||||
|
|
||||||
|
### 软件安装配置
|
||||||
|
|
||||||
|
#### Mysql
|
||||||
|
|
||||||
|
安装配置请查看链接:https://www.cnblogs.com/yanglang/p/10782941.html
|
||||||
|
|
||||||
|
```
|
||||||
|
scp mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar root@127.0.0.1:/usr/local/pag
|
||||||
|
|
||||||
|
// 安装命令:
|
||||||
|
tar -xvf mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar
|
||||||
|
rpm -ivh mysql-community-common-8.0.27-1.el7.x86_64.rpm --nodeps --force
|
||||||
|
rpm -ivh mysql-community-libs-8.0.27-1.el7.x86_64.rpm --nodeps --force
|
||||||
|
rpm -ivh mysql-community-client-8.0.27-1.el7.x86_64.rpm --nodeps --force
|
||||||
|
rpm -ivh mysql-community-server-8.0.27-1.el7.x86_64.rpm --nodeps --force
|
||||||
|
rpm -qa | grep mysql
|
||||||
|
|
||||||
|
rpm -e mysql-community-common --nodeps
|
||||||
|
rpm -e mysql-community-libs --nodeps
|
||||||
|
rpm -e mysql-community-client --nodeps
|
||||||
|
rpm -e mysql-community-server --nodeps
|
||||||
|
|
||||||
|
mysqld --initialize
|
||||||
|
chown mysql:mysql /var/lib/mysql -R
|
||||||
|
systemctl start mysqld.service
|
||||||
|
systemctl enable mysqld
|
||||||
|
cat /var/log/mysqld.log | grep password
|
||||||
|
mysql -uroot -p
|
||||||
|
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'b0Nrzh97G9lJkQMK';
|
||||||
|
create user 'root'@'%' identified with mysql_native_password by 'b0Nrzh97G9lJkQMK';
|
||||||
|
grant all privileges on *.* to 'root'@'%' with grant option;
|
||||||
|
flush privileges;
|
||||||
|
```
|
||||||
|
|
||||||
|
安装配置完成后建议使用Navicat Premium 作为 Mysql 的客户端
|
||||||
|
|
||||||
|
1. 首先需要创建 kinit 系统数据库
|
||||||
|
|
||||||
|
2. 然后将 kinit-api\static\kinit.sql 文件导入
|
||||||
|
|
||||||
|
#### Python
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# 下载python安装包
|
||||||
|
wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz
|
||||||
|
# 创建安装目录
|
||||||
|
mkdir /usr/local/python3
|
||||||
|
# 解压安装包
|
||||||
|
tar -zxvf Python-3.8.2.tgz
|
||||||
|
# 进入解压目录
|
||||||
|
cd Python-3.8.2
|
||||||
|
# 配置
|
||||||
|
./configure --prefix=/usr/local/python3
|
||||||
|
#编译
|
||||||
|
make && make install
|
||||||
|
#创建软链接
|
||||||
|
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
|
||||||
|
ln -s /usr/local/python3/bin/python3 /usr/local/bin/python3
|
||||||
|
#pip创建软链接
|
||||||
|
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
|
||||||
|
# 更新pip
|
||||||
|
pip3 install --upgrade pip
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Git
|
||||||
|
|
||||||
|
安装:
|
||||||
|
|
||||||
|
```
|
||||||
|
yum -y install git
|
||||||
|
```
|
||||||
|
|
||||||
|
获取项目文件:
|
||||||
|
|
||||||
|
```
|
||||||
|
mkdir -p /opt/project/
|
||||||
|
git clone -b release 项目Git仓库
|
||||||
|
```
|
||||||
|
|
||||||
|
或者也可以通过压缩包上传的方式上传到服务器,推荐使用 Git 方式
|
||||||
|
|
||||||
|
#### Python 虚拟环境
|
||||||
|
|
||||||
|
创建项目所使用的 python 虚拟环境:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# 安装 virtualenv
|
||||||
|
pip3 install virtualenv
|
||||||
|
|
||||||
|
# 找到虚拟环境的安装目录
|
||||||
|
find / -name virtualenv
|
||||||
|
# 创建软链接
|
||||||
|
ln -s /usr/local/python3/bin/virtualenv /usr/bin/
|
||||||
|
|
||||||
|
# 进入虚拟环境目录
|
||||||
|
mkdir -p /opt/env
|
||||||
|
cd /opt/env
|
||||||
|
|
||||||
|
# 新建虚拟环境,会在当前目录生成一个文件夹
|
||||||
|
virtualenv kinit
|
||||||
|
|
||||||
|
# 进入虚拟环境(命令行前面会出现虚拟环境名称)
|
||||||
|
cd kinit
|
||||||
|
source bin/activate
|
||||||
|
|
||||||
|
# 退出虚拟环境命令(之后的设置都是在虚拟环境中设置,这里不需要退出)
|
||||||
|
deactivate
|
||||||
|
```
|
||||||
|
|
||||||
|
安装接口项目依赖包:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# 在虚拟环境中执行
|
||||||
|
# 进入到 saas-api 根目录下执行
|
||||||
|
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Supervisor
|
||||||
|
|
||||||
|
官方文档:http://supervisord.org/
|
||||||
|
|
||||||
|
安装配置请查看:https://www.jianshu.com/p/0b9054b33db3
|
||||||
|
|
||||||
|
创建项目接口 supervisor 配置文件:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
vim /etc/supervisord.d/kinit.api.ini
|
||||||
|
```
|
||||||
|
|
||||||
|
内容如下:
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[program:kinit.api]
|
||||||
|
directory=/opt/project/kinit/kinit-api/
|
||||||
|
command=/opt/env/kinit/bin/gunicorn main:app -w 2 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:9000
|
||||||
|
startsecs=10
|
||||||
|
stopwaitsecs=10
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
redirect_stderr=true
|
||||||
|
stdout_logfile_maxbytes=10MB
|
||||||
|
stdout_logfile_backups = 3
|
||||||
|
stdout_logfile=/opt/logs/kinit.api.log
|
||||||
|
```
|
||||||
|
|
||||||
|
更新 supervisor 配置:
|
||||||
|
|
||||||
|
```
|
||||||
|
supervisorctl update
|
||||||
|
```
|
||||||
|
|
||||||
|
更新后会自动启动进程
|
||||||
|
|
||||||
|
可以通过命令查看:
|
||||||
|
|
||||||
|
```
|
||||||
|
supervisorctl status
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Nginx
|
||||||
|
|
||||||
|
安装:
|
||||||
|
|
||||||
|
```
|
||||||
|
yum -y install nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
增加配置文件
|
||||||
|
|
||||||
|
```
|
||||||
|
vim /etc/nginx/conf.d/kinit.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
内容如下:
|
||||||
|
|
||||||
|
```nginx
|
||||||
|
server
|
||||||
|
{
|
||||||
|
listen 80;
|
||||||
|
server_name 127.0.0.1;
|
||||||
|
root /opt/project/kinit/kinit-admin/dist/;
|
||||||
|
|
||||||
|
keepalive_timeout 180s;
|
||||||
|
client_max_body_size 20m;
|
||||||
|
|
||||||
|
location ~ \.well-known{
|
||||||
|
allow all;
|
||||||
|
}
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ @router;
|
||||||
|
root /opt/project/kinit/kinit-admin/dist/;
|
||||||
|
index index.html;
|
||||||
|
}
|
||||||
|
location /api/ {
|
||||||
|
proxy_pass http://127.0.0.1:9000/;
|
||||||
|
client_max_body_size 20m;
|
||||||
|
}
|
||||||
|
|
||||||
|
location @router {
|
||||||
|
rewrite ^.*$ /index.html break;
|
||||||
|
}
|
||||||
|
|
||||||
|
access_log /opt/logs/kinit.log;
|
||||||
|
error_log /opt/logs/kinit.log;
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
配置完成后启动:
|
||||||
|
|
||||||
|
```
|
||||||
|
systemctl start nginx
|
||||||
|
# 开启自启动
|
||||||
|
systemctl enable nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
查看当前状态:
|
||||||
|
|
||||||
|
```
|
||||||
|
systemctl status nginx
|
||||||
|
```
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user