Skip to content

Latest commit

 

History

History
180 lines (127 loc) · 4.04 KB

项目部署.md

File metadata and controls

180 lines (127 loc) · 4.04 KB

项目部署指南

项目部署指南主要以 Centos 系统为使用场景,ubuntu 系统配置说明详见《4. ubuntu系统配置》。

1. 前端部署

前端项目打包上传至 /home/app/ta_learn_tool/client 目录下

npm run build

2. 后端部署

安装 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

3. Nginx配置

安装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 {
  }
}

4. ubuntu系统配置

注意启动命令都要加上sudo

4.1 nginx配置

配置需要在 /etc/nginx/sites-available/default 文件中设置

4.2 supervisor配置

配置需要在 /etc/supervisor/conf.d 目录下存放 ta_learn_tool.conf 文件,当然也可以在/etc/supervisor/supervisord.conf 文件中自定义。

5. 参考资料:

  1. https://juejin.im/post/6844904138774413325#heading-5
  2. https://www.cnblogs.com/quzq/p/11192993.html
  3. https://www.cnblogs.com/doocool/p/8847288.html
  4. https://juejin.im/post/6844903550363893767
  5. https://juejin.im/post/6844904009157836808