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

时间:2022-06-18 07:55:15

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

 环境: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