美文网首页Python Flask
使用nginx+uwsgi简易部署flask项目

使用nginx+uwsgi简易部署flask项目

作者: MoonMonsterss | 来源:发表于2018-11-06 23:01 被阅读29次

    1.复制flask项目文件到腾讯云服务器上

    例如路径: /root/CHENTAO/code/Flask/GodAlbumy

    2.使用pipenv虚拟环境

    创建好pipenv虚拟环境后,使用pipenv install -r requirements.txt将相关库安装好
    如果在此过程中,报Python 3 was configured to use ASCII as encoding for the environment 乱码错误,使用命令即可解决。

    export LC_ALL=en_US.utf-8 && export LANG=en_US.utf-8
    

    3.nginx.conf配置文件

    修改 /usr/local/nginx/conf 路径下的nginx.conf文件,记得修改前先备份一次,修改如下:

    server {
            listen       80;
            server_name  www.qxinhai.cn;
    
            #index index.jsp index.html;
            # root /yjdata/www/www/;
            location / {
                    proxy_pass http://127.0.0.1:5000;
            }
    }
    

    listen是绑定的端口,可以通过该端口直接访问到的,默认是80;server_name就是绑定的网址,如果只是测试,也可以写成localhost,但这样的话,上面的listen就不能使用80端口,因为直接使用localhost:80访问的话,访问的是nginx的主页,无法映射到location中;location中的proxy_pass就是启动flask项目绑定的host和port了。

    4.启动flask项目

    项目需要使用flask run启动,如果显示没有flask指令的话,按照以下步骤解决:

    4.1 使用find / -name flask查找系统中有哪些flask文件

    [root@VM_50_252_centos conf]# find / -name flask
    /root/.local/share/virtualenvs/GodAlbumy-N4zK0YW0/lib/python3.6/site-packages/flask
    /root/.local/share/virtualenvs/GodAlbumy-N4zK0YW0/lib/python3.6/site-packages/flask_migrate/templates/flask
    /root/.local/share/virtualenvs/GodAlbumy-N4zK0YW0/bin/flask
    /usr/local/lib/python3.6/site-packages/flask
    /usr/local/lib/python3.6/site-packages/flask_migrate/templates/flask
    /usr/local/bin/flask
    

    因为我使用的是pipenv虚拟环境,所以需要使用这个路径下的flask文件

    /root/.local/share/virtualenvs/GodAlbumy-N4zK0YW0/bin/flask
    

    4.2 启动虚拟环境

    在对应的目录下,使用pipenv shell启动

    [root@VM_50_252_centos GodAlbumy]# pwd
    /root/CHENTAO/env/GodAlbumy
    

    4.3 启动flask项目

    进入项目所在目录,前面的(GodAlbumy)指的就是启动了GodAlbumy这个pipenv虚拟环境

    (GodAlbumy) [root@VM_50_252_centos GodAlbumy]# pwd
    /root/CHENTAO/code/Flask/GodAlbumy
    

    使用命令启动

    /root/.local/share/virtualenvs/GodAlbumy-N4zK0YW0/bin/flask run
    

    当然,因为使用了虚拟环境,所以需要使用flask的完整路径,如果是真实环境的话,可以创建软链接指向flask,例如

    ln -s /root/.local/share/virtualenvs/GodAlbumy-N4zK0YW0/bin/flask(真实环境中的flask路径) /usr/bin/flask
    

    4.4 访问

    使用www.qxinhai.cn即可访问flask项目了。

    5.使用uwsgi

    5.1 安装

    pip install uwsgi,如果使用的是虚拟环境,那么pipenv install uwsgi。如果安装在虚拟环境中,那么使用uwsgi时,需要先启动虚拟环境

    5.2 配置文件

    [uwsgi]
    # url + port,即启动flask项目默认使用的
    http=127.0.0.1:5000
    # 启动文件
    wsgi-file=/root/CHENTAO/code/Flask/GodAlbumy2/GodAlbumy/manage.py
    callable=app
    # 项目目录
    touch-reload=/root/CHENTAO/code/Flask/GodAlbumy2/GodAlbumy
    

    manage.py的代码:

    from albumy import create_app
    
    app = create_app('production')
    
    if __name__ == '__main__':
        app.run(debug=False)
    

    5.3 启动uwsgi

    albumy_uwsgi.init是配置文件的完整路径,因为是在同目录下启动的,所以就没有加上具体路径了。

    uwsgi --ini albumy_uwsgi.ini
    

    6. 参考

    https://www.cnblogs.com/zhangjpn/p/6876412.html?utm_source=itdadao&utm_medium=referral
    https://www.cnblogs.com/franknihao/p/7202253.html
    https://www.cnblogs.com/knarfeh/p/5616515.html
    

    相关文章

      网友评论

        本文标题:使用nginx+uwsgi简易部署flask项目

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