采用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

  

posted @ 2016-11-21 13:36  JasperH  阅读(1806)  评论(1编辑  收藏  举报