目录
  1. 1. Centos部署Flask
    1. 1.1. 服务器代理
    2. 1.2. CentOS环境配置
      1. 1.2.1. 安装virtualenv
      2. 1.2.2. 安装所需源
      3. 1.2.3. 安装Nginx
      4. 1.2.4. kill杀进程
    3. 1.3. Flask配置
      1. 1.3.1. 配置uwsgi
      2. 1.3.2. 配置nginx
    4. 1.4. 启动Flask
      1. 1.4.1. 上传项目(WinSCP)
      2. 1.4.2. 启动
Flask | CentOS7部署Flask

Centos部署Flask

项目地址:水果识别demo,请使用Microsoft Edge!


服务器代理

使用的代理一共有两个,nginx和uwsgi,先说明一下,如果不用nginx一样可以访问你的项目,使用nginx的目的是为了安全和负载均衡。配置了nginx做前端代理,uwsgi作后端代理的服务器(这里所说的前后端都是相对的位置,并无实际含义),在处理来自Internet的请求时,要先经过nginx的处理,nginx把请求再交给uwsgi,经过uwsgi才能访问到项目本身。

没有nginx而只有uwsgi的服务器,则是Internet请求直接由uwsgi处理,并反馈到我们的项目中。
nginx可以实现安全过滤,防DDOS等保护安全的操作,并且如果配置了多台服务器,nginx可以保证服务器的负载相对均衡。

而uwsgi则是一个web服务器,实现了WSGI协议(Web Server Gateway Interface),http协议等,它可以接收和处理请求,发出响应等。所以只用uwsgi也是可以的。

CentOS环境配置

安装virtualenv

  1. 安装virtualenv
    1
    pip install virtualenv
  2. 创建虚拟环境(环境名为python3.6)
    1
    # virtualenv  -p /usr/local/python3/bin/python3.6 /python3.6
  3. 进入虚拟环境(每次编辑需进入此虚拟环境)
    1
    # source /python3.6/bin/activate
  4. 成功进入虚拟环境显示
    1
    (python3.6) [root@···]#

安装所需源

  1. 在虚拟环境中安装flask和uwsgi
    1
    2
    # pip install flask
    # pip install uwsgi
  2. 在虚拟环境中安装flask项目所需源
    1
    2
    3
    4
    5
    # pip3 install pillow
    # pip3 install opencv-python
    # pip3 install tensorflow==1.5
    # pip3 install numpy
    # pip3 install requests

安装Nginx

  1. 下载
    1
    2
    # 下载版本号可根据目前官网最新稳定版自行调整
    wget -c https://nginx.org/download/nginx-1.16.1.tar.gz
  2. 安装
    1
    2
    # 根目录使用ls命令可以看到下载的nginx压缩包,然后解压
    tar -zxvf nginx-1.16.1.tar.gz
    1
    2
    # 解压后进入目录
    cd nginx-1.16.1
    1
    2
    # 使用默认配置
    ./configure
    1
    2
    3
    # 编译安装
    make
    make install
  3. 启动
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # cd /usr/local/nginx/sbin
    ./nginx #启动
    ./nginx -s stop #停止,直接查找nginx进程id再使用kill命令强制杀掉进程
    ./nginx -s quit #退出停止,等待nginx进程处理完任务再进行停止
    ./nginx -s reload #重新加载配置文件,修改nginx.conf后使用该命令,新配置即可生效

    查看nginx进程
    # ps aux|grep nginx

    停止nginx
    # service nginx stop

    关闭nginx的进程
    killall -9 nginx

参考:
CentOS7 nginx安装与卸载
centos7安装Nginx、使用nginx记录

kill杀进程

  1. 用kill来杀死某一个进程
    kill,加选项-9,加PID,表示杀死进程编号为PID的这个进程
    -1 重启
    #kill -9 PID
  2. 用killall杀死一类进程
    #killall,加选项-9,加服务名, 表示杀死该服务的所有进程
    -1 重启
    #killall -9 service
  3. 用pkill踢出某个终端
    pkill,加选项-9,加终端号,表示踢出该终端
    -1 重启
    #pkill -9 pts/0
  4. 查看进程
1
#ps -aux | grep gunicorn

参考:centos下kill、killall、pkill命令区别

Flask配置

配置uwsgi

文件路径:/usr/local/nginx/html/fruit_classification/uwsgiconfig.ini
在部署项目的根目录下创建配置文件uwsgiconfig.ini,添加配置内容如下:

[uwsgi]  
# uwsgi 启动时所使用的地址与端口(可以与项目端口不一致)  
socket = 127.0.0.1:8001  
# 指向网站目录  
chdir = /usr/local/nginx/html/fruit_classification/  
# python 启动程序文件  
wsgi-file = /usr/local/nginx/html/fruit_classification/  app.py  
# python 程序内用以启动的 application 变量名  
callable = app  
# 处理器数  
processes = 4  
# 线程数  
threads = 2  
# 缓冲区  
buffer-size = 32768  
# 状态检测地址  
stats = 127.0.0.1:9191  
# 日志保存  
daemonize = /usr/local/nginx/html/fruit_classification/  fruit_classification.log   

配置nginx

文件路径:/usr/local/nginx/conf/nginx.conf

server {  
        listen       80;    
        server_name  47.101.180.197;    
        #charset koi8-r;  
        #access_log  logs/host.access.log  main;  
        location / {  
            include uwsgi_params;  
            uwsgi_pass 127.0.0.1:8001;  
            uwsgi_param UWSGI_PYHOME /usr/local/python3/  bin/python3.6;  #python位置,要么是虚拟机,要么是运行的环境变量位置  
            uwsgi_param UWSGI_CHDIR /usr/local/nginx/html/fruit_classification;  #项目根目录  
            uwsgi_param UWSGI_SCRIPT manage:app;  
            # root   html;  
            # index  index.html index.htm;    
        }  

启动Flask

上传项目(WinSCP)

项目上传地址:/usr/local/nginx/html/fruit_classification

启动

1
2
3
4
# source /python3.6/bin/activate
# cd /usr/local/nginx/sbin
# ./nginx
# uwsgi --ini /usr/local/nginx/html/fruit_classification/uwsgiconfig.ini

参考:
CentOS 下用 Nginx 和 uwsgi 部署 flask 项目
阿里云服务器Centos上部署一个Flask项目
centos服务器部署flask项目
centos7安装Nginx、使用nginx记录
CentOS7 nginx安装与卸载


项目地址:水果识别demo,请使用Microsoft Edge!

文章作者: Ben
文章链接: https://smallbenxiong.github.io/2020/02/29/20200229-CentOS7%E9%83%A8%E7%BD%B2Flask/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ben Blog
打赏
  • WeChat
  • Alipay

评论