乐趣区

CentOs7用nginxuwsgi部署flask项目

前言

  1. 最近在学习 CentOs 服务器环境,刚好做腾讯小程序设计大赛, 项目需要用到 flask 和爬虫写后端。本文记录了如何部署 flask 项目
  2. 若是在 Ubuntu 上用 nginx+uwsgi 部署 flask 项目, 可以参考我的另外一篇文章。
  3. 版本:python3.5.0,CentOs7.6

一. 环境准备

  • python3.5.0
  • setuptools
  • pip3
  • uwsgi
  • flask
  1. 安装 python3.5.0

    1. 下载 python 的包[root@VM_0_15_centos local]# wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
    2. [root@VM_0_15_centos local]# tar -zxvf python3.5.0
    3. [root@VM_0_15_centos local]# cd Python3.5.0
    4. [root@VM_0_15_centos local]# ./configure
    5. [root@VM_0_15_centos local]# make &&make install
    6. 现在 python3.5.0 已经安装好了, 但是很可能你输入 python3 --version 会发现找不到 python
    7. 解决办法: 看第二步
  2. uwsgi(/nginx/python/pip3 等)安装好后,command not found 的解决办法

    • find / -name uwsgi
    • 假设找到的地址为 /usr/local/bin/uwsgi
    • 建立软连接 sudo ln -s /usr/local/bin/uwsgi /usr/bin/uwsgi
    • 注意: 建立软链接时最好 sudo, 不然很可能还是 command not found
  3. 安装 setuptools

    1. 同样下载 setuptools 的包wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
    2. 解压 tar -zxvf setuptools-19.6.tar.gz
    3. cd setuptools-19.6
    4. 分别执行python3 setup.py buildpython3 setup.py install
    5. 顺利的话:

      Processing dependencies for setuptools==19.6
      Finished processing dependencies for setuptools==19.6
  4. 安装 pip

    1. 同样下载 pip 的包wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
    2. 解压 tar -zxvf pip-8.0.2.tar.gz
    3. cd pip-8.0.2
    4. 分别执行python3 setup.py buildpython3 setup.py install
    5. 顺利的话:

      Processing dependencies for pip==8.0.2
      Finished processing dependencies for pip==8.0.2
  5. 安装 pip 需要的 openssl 和 openssl-devel
    执行 yum install opensslyum install openssl-devel

    注意很可能还需yum -y install python3-devel

  6. 安装 uwsgi pip3 install uwsgi
  7. 安装 flask 和项目需要的一些包(只是本项目需要的包)
    首先进入到项目目录里

    • pip3 install flask
    • pip3 install virtualenv
    • pip3 install flask_sqlalchemy
    • pip3 install sqlalchemy
    • pip3 install flasgger
    • pip3 install flask_cors

二. 代理服务器配置

  1. 配置文件 uwsgi.ini
    sudo vim uwsgi.ini
    基本内容:

    [uwsgi]
    chdir=/home/dbc/gameEvent
    callable=app
    wsgi-file=app.py
    processes = 5
    http=0.0.0.0:8001
    chmod-socket=666
    max-requests=1000
  2. nginx 配置
    进入 nginx 的 conf 目录下(目录结构不一样哟!)
    cd /www/server/nginx/conf
    sudo vim flask.conf

     server{
      listen 8001;
      server_name 0.0.0.0; #访问 ip
    
      location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:5000;  #代理到 uwsgi.ini 里兼容的 ip 和端口
      }
     }
  3. 生成 uwsgi 日志目录
    mkdir /var/log/uwsgi
  4. 跑起来
    uwsgi uwsgi.ini -d /var/log/uwsgi.log

最后

  • 参考链接:1,2
退出移动版