采用flask+uwsgi+nginx架构将flask应用程序部署在腾讯云

 最近一星期加班为学校做了一个教师发展中心平台,在此总结一下部署经验

 环境:Centos7.0 python2.7.5

 1.安装nginx

    命令行输入指令:sudo yum install nginx

2.安装pip

    1. sudo yum –y install epel-release

    2. sudo yum –y install python-pip

 3.安装virtualenv

    pip install virtualenv

    在应用程序目录创建虚拟环境 virtualenv venv

 4.激活虚拟环境

    在目录下home/magicroc/flasky

    virtualenv venv

    source /bin/activate

 5.虚拟环境下安装uwsgi服务器

    pip install uwsgi (需安装三个库 )

      1.sudo yum install libxml2

      2.sudo yum install gcc

      3.sudo yum install python-devel

 6.安装flask应用程序依赖包

    因为pip安装时速度太慢,所以决定更改为pip国内源

    对指定包对安装临时使用豆瓣源

    pip install flask_sqlalchemy –i http://pypi.douban.com/simple

    永久更新源办法 修改配置文件

    在主目录下创建.pip文件夹

    mkdir ~/.pip

    然后在该目录下创建pip.conf文件

    vi pip.conf

    写入以下内容

    [global]

    trusted-host = pypi.douban.com

    index-url = http://pypi.douban.com/simple

  7.修改nginx配置文件(最后不要直接修改nginx.conf默认文件,笔者这里是直接修改默认配置文件,不过不推荐这种行为)

    vi etc/nginx/nginx.conf

    server {

     listen 80;

    server_name XXX.XXX.XXX; #公网地址

     location / {

    include uwsgi_params;

    uwsgi_pass 127.0.0.1:8001; # 指向uwsgi 所应用的内部地址,所有请求将转发给uwsgi 处理

    uwsgi_param UWSGI_PYHOME /home/magicroc/flasky/venv; # 指向虚拟环境目录

    uwsgi_param UWSGI_CHDIR /home/magicroc/flasky; # 指向网站根目录

    uwsgi_param UWSGI_SCRIPT manage:app; # 指定启动程序

     }

    }

    启动nginx:命令行输入nginx

    关闭nginx:ps -ef|grep nginx

     查看nginx 线程ID

     kill -QUIT 线程ID

  8.修改uwsgi配置文件

    进入flask应用程序目录 vi config.ini

    [uwsgi]

    # uwsgi 启动时所使用的地址与端口

    socket = 127.0.0.1:8001

    # 指向网站目录

    chdir = /home/magicroc/flasky

    # python 启动程序文件

    wsgi-file = manage.py

    # python 程序内用以启动的 application 变量名

    callable = app

    # 处理器数

    processes = 4

    # 线程数

    threads = 2

    #状态检测地址

    stats = 127.0.0.1:9191

    uwsgi 启动 :虚拟环境下uwsgi config.ini

    uwsgi 关闭:虚拟环境下killall -9 uwsgi