项目部署指南主要以 Centos 系统为使用场景,ubuntu 系统配置说明详见《4. ubuntu系统配置》。
前端项目打包上传至 /home/app/ta_learn_tool/client 目录下
npm run build
安装 python 通过 EPEL 仓库安装,首先安装最新版本的EPEL
$ sudo yum install epel-release
安装 python 3.6
$ sudo yum install python36
将后端项目上传至 /home/app/ta_learn_tool 目录下,并创建虚拟环境
cd /home/app/ta_learn_tool
mkdir venv
python3 -m venv venv
激活虚拟环境
source venv/bin/activate
根据 requirements.txt 文件安装依赖包
pip3 install -r requirements.txt
安装 gunicorn
pip3 install gunicorn
启动服务在8000端口,我们还可以利用Supervisor来启动,详见后面的配置
gunicorn -w 4 -b 127.0.0.1:8000 run:app # -w 工作进程的数量 -b ADDRESS(ip+端口) 启动文件名:程序名
安装Supervisor
yum install supervisor
运行 echo_supervisord_conf
命令生成配置文件模板 supervisord.conf
并放到/etc/
目录下
echo_supervisord_conf > /etc/supervisord.conf
编辑 supervisord.conf
,取消最后[include]
注释,修改对应文件夹/usr/local/supervisor/conf/*.ini
可存放自定义任务配置文件
[include]
files = /etc/supervisor.conf/*.ini
在/usr/local/supervisor/conf
新建自定义任务配置文件ta_learn_tool.ini
[program:ta_learn_tool]
command=/home/app/ta_learn_tool/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 run:app ;启动命令
directory=/home/app/ta_learn_tool ; 项目的文件夹路径
startsecs=0 ; 启动时间
stopwaitsecs=0 ; 终止等待时间
autostart=false ; 是否自动启动
autorestart=false ; 是否自动重启
stdout_logfile=/home/app/ta_learn_tool/logs/gunicorn.log ; log 日志
stderr_logfile=/home/app/ta_learn_tool/logs/gunicorn.err ; 错误日志
启动supervisor
supervisord -c /etc/supervisord.conf
管理进程
supervisorctl
# 更新任务
supervisorctl update
# 开启全部任务
supervisorctl start all
# 停止全部任务
supervisorctl stop all
# 重启全部任务
supervisorctl restart all
# 查看任务状态
supervisorctl status all
安装nginx
yum -y install nginx
nginx命令
$ service nginx start # 启动服务
$ service nginx stop # 停止服务
$ service nginx restart # 重启服务
nginx配置文件 /etc/nginx/nginx.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name 120.78.2.155; # 域名或者公网IP
root /home/app/ta_learn_tool/client; # web文件入口
index index.html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location /api {
proxy_pass http://127.0.0.1:8000; # 指向gunicorn host的服务器地址,监听在8000端口
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
注意启动命令都要加上sudo
配置需要在 /etc/nginx/sites-available/default 文件中设置
配置需要在 /etc/supervisor/conf.d 目录下存放 ta_learn_tool.conf 文件,当然也可以在/etc/supervisor/supervisord.conf 文件中自定义。