flask项目上线部署

此例为个人博客项目部署

上线部署准备工作

  • 安装mysql

  • 安装redis

安装: apt-get install redis-server
从进程中查看是否启动: ps -aux|grep redis 端口 6379
  • 安装uginx

安装: sudo apt install nginx

systemctl status nginx 查看nginx的状态
systemctl start/stop/enable/disable nginx 启动/关闭/设置开机启动/禁止开机启动

或者是如下命令:
service nginx status/stop/restart/start

注意:nginx的配置文件中加载自定义的nginx的配置文件

vim /etc/nginx/nginx.conf
在server中加入以下配置:
include /home/app/conf/*.conf;
  • 安装uwsgi

pip install uwsgi 安装到虚拟环境下

vim /etc/nginx/nginx.conf
在server中加入以下配置:
include /home/app/conf/*.conf;

注意:将window上项目文件移动到与服务器

scp -r D:\/file\/wordspace\/axf root@47.112.15.210(云服务器ip):/home/code scp -r D:\/file\/wordspace\/axf-vue\/dist root@47.112.15.210:/home/code

 

本地服务器操作

使用 Git Bash终端 将项目提交到github:

注意: windows下进入目录反向斜杠/

  1. 在需要的本地目录下clone远程仓库,将整个项目放进去

  2. 在本地仓库目录下

  • git add . 提交到本地仓库

  • git commit -m ' 提交项目 '

  • git push -u 远程仓库地址(ssh需要配密钥, http) 后面推送无需加 -u

配置准备:

1.进入阿里云网页,在防火墙中打开80端口服务

2.在阿里云服务器端,安装mysql,配置数据库,设置阿里云服务器远程访问权限

 

阿里云服务器端操作

1.创建工作目录,home下创建code 和 env 用来存放代码和虚拟环境

2.在code目录下clone远程仓库到阿里云服务器

在env目录下创建虚拟环境blogenv (首先得安装虚拟环境包)

3.进入blogenv/bin目录下安装所需要的库文件

  • 激活虚拟环境: source activate

  • 在虚拟环境下安装项目所需的三方库: pip3 install -r requirement.txt的绝对路径

    非虚拟环境下安装三方库: pip3的绝对路径 install -r requirement.txt的绝对路径

4.启动项目

方式一: 虚拟环境中python3的绝对路径 manage.py的绝对路径 runserver -p 80 -h 0.0.0.0

例:  /home/env/blogenv/bin/python3  /home/code/flask/blog/manage.py runserver -p 80 -h 0.0.0.0

方式二: 在code目录下创建run_blog.sh文件: touch run_blog.sh, 将以上启动命令存入该文件.使用nohup去运行它,会生成一个nohup.out日志文件

  • 修改权限: chmod -R 777 run__blog.sh

  • 后台挂载应用 &: nohup ./run_blog &

    • 查看nohup.out日志文件

    • cat nohup.out: 查看全部

    • tail -n 5 nohup.out :查看最后五条记录

    • tail -f nohup.out: 动态查看应用运行日志

启动时端口被占用,需查看端口杀死占用端口进程:

  • 查看端口:

    法1: ps -aux | grep 80(指定查找字段)

    法2: netstat -lntp

  • 杀死进程:

    kill -9 进程PID

方式三: 使用 uginx 和 uwsgi 挂载项目

  • 配置nginx

新建 blognginx.conf 文件

server {
      listen 8880;     # 监听8880端口
      server_name 47.112.15.210;

      location / {
              include uwsgi_params;
              uwsgi_pass 127.0.0.1:8000;  # 访问8880端口,请求跳转到8000端口

              uwsgi_param UWSGI_CHDIR /home/code/flask/blog; # blog路径
              uwsgi_param UWSGI_SCRIPT manage:app;
      }
}
  • 配置uwsgi

新建 bloguwsgi.ini 文件

[uwsgi]
master=true
socket=127.0.0.1:8000
chdir=/home/code/flask/blog/
pythonpath=/home/env/blogenv/bin/python3
callback=app
logto=/home/logs/bloguwsgi.log

 

posted @ 2019-05-21 23:21  Deaseyy  阅读(1372)  评论(0编辑  收藏  举报