美文网首页
阿里云cent7+uwsgi+nginx+flask成功部署

阿里云cent7+uwsgi+nginx+flask成功部署

作者: 裂开的汤圆 | 来源:发表于2019-06-04 23:48 被阅读0次

    部署了两天,踩了无数坑,终于搞定了。话不多说,直接上干货,这篇主要讲述配置文件如何配置

    uwsgi配置flask项目

    uwsgi可以通过两种方式启动

    方式一(安装uwsgi成功后执行该命令):

    uwsgi --socket 127.0.0.1:3031 --wsgi-file manage.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191
    

    方式二(创建xxx.ini文件,配置该文件然后执行):
    可以通过"uwsgi xxx.ini"命令启动uwsgi

    [uwsgi]
    # uwsgi监听端口(小弟不才,这里也踩了一个坑,0.0.0.0代表的是监听公网,127.0.0.7代表监听本地。一开始我设置了127.0.0.1,然后想从公网访问,却一直失败,捣鼓了好久才知道是这里的问题)
    socket = 0.0.0.0:8000
    
    # 项目根目录
    chdir = /home/xxx/Project                                         
    # flask程序的启动文件
    wsgi-file = manage.py
    
    # 程序变量名
    callable = app
    
    # 进程数
    processes = 4
    
    # 线程数
    threads = 2
    
    # 状态检测地址
    stats = 127.0.0.1:9191
    

    nginx配置文件(在修改配置文件后得重启nginx)

    在/etc/nginx/conf.d/下创建一个xxx.conf文件,在这个文件夹下创建的配置文件会被引用到/etc/nginx/nginx.conf中,原因是nginx.conf中使用了include语句,请看下图


    这里写图片描述

    配置内容如下:

    server{
        listen 80;
        # 服务器公网IP
        server_name xx.xx.xx.xx;
        # 日志位置
        access_log /xxx/xxx.log;
        error_log /xxx/xxx.log;
        location / {
            include uwsgi_params;
            # 指向uwsgi所应用的内部地址,所有请求将转发给uwsgi处理
            uwsgi_pass 0.0.0.0:8000;
            # 指向虚拟环境(venv),注意是要python执行文件
            uwsgi_param UWSGI_PYHOME /home/Project/bin/python;
            # 网站根目录
            uwsgi_param UWSGI_CHDIR /home/Project/;
            # 启动程序
            uwsgi_param UWSGI_SCRIPT manage:app;
        }
    }
    

    如果你想从公网访问的话,需要在阿里云的安全组中添加80端口规则,不知道怎么设置的请百度

    最后需要注意的地方是,nginx是最外层的代理,也就是说所有的请求会先通过nginx再到uwsgi,所以测试时请求的端口应该是nginx监听的端口,例如我这里nginx监听的端口是80

    下面是一下会用到的命令

    启动uwsgi: uwsgi xxx.ini
    结束所有uwsgi进程: killall -9 uwsgi
    启动nginx: service nginx start
    重启nginx: service nginx restart(在修改配置文件后得重启nginx)
    查询相关的进程运行情况:ps -ef|grep nginx

    相关文章

      网友评论

          本文标题:阿里云cent7+uwsgi+nginx+flask成功部署

          本文链接:https://www.haomeiwen.com/subject/mailtctx.html