美文网首页
Linux部署flask项目

Linux部署flask项目

作者: 某言 | 来源:发表于2017-12-06 10:05 被阅读0次

    以前也学过Django , 回过头来 , 再看flask , 觉得它就像一个小宝宝一样单纯 , 让心喜欢 , 它真的是很轻很轻 , 让人欢喜不已 , 明确的路由 , 让人易懂的目录结构 , 最喜欢这种slight的框架了。

    flask

    那么 , 如何部署它呢? 我之前写了篇linux(ubuntu)部署Django的 , 大概原理差不多 , 所以 , 来看看如何部署flask?

    这次我使用的是centos , 默认已经下载了nginx , uwsgi。假设指向服务器的域名是:rrr.com。

    步骤:

    我的项目叫做flask_learn , 目录结构是 : 

    目录结构

    1,放置项目

    就像flask很轻巧,灵活一样,其部署的目录,也是很灵活的,可以随处选择,但是,自己要记住。比如我的flask_learn , 放在如下路径下:

    项目位置

    2 ,配置uwsgi.ini配置文件:

    一般习惯在文件根目录[/home/modle/html/flask/flask_learn/]添加一个uwsgi.ini配置uwsgi服务器的配置文件 , 内容大致如下 :

    [uwsgi]#必须有

    socket = 127.0.0.1:622#uwsgi和nginx通信的端口

    http = 621#web直接访问的端口

    chdir = /home/modle/html/flask/flask_learn/

    wsgi-file = /home/modle/html/flask/flask_learn/index.py

    #这个必须有,app,是flask中的主入口的:app = flask.Flask(__name__)

    callable = app

    processes = 2

    threads = 2

    touch-reload = /home/modle/html/flask/flask_learn/#检测文件改变就重启,在试调时候很重要,当然,但是不是一直有效【使用nginx代理时候】,why?

    logto = /home/modle/html/user_server/logs/%n.log#记录日志

    3 ,启动uwsgi服务器 :

    输入命令:

    uwsgi /home/modle/html/flask/flask_learn/uwsgi.ini -d /home/modle/html/flask/flask_learn/logs/log.log

    意思就是,启动uwsgi,配置文件是uwsgi.ini,输出的日志是在log.log中。

    4 ,配置nginx服务器 :

    具体的vhost的server块如下:

    server {

        listen 5000;

        access_log /home/modle/log/access.log;

        error_log /home/modle/log/error.log;

        #这个应该是没必要的

        root /home/modle/html/flask/flask_learn/;

        #如果输入域名的话访问这个

        index index.html;

        server_name rrr.com;

        #入下两个是跨域使用,不一定需要

        add_header 'Access-Control-Allow-Origin' '*';

        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';

        location / {

            include /etc/nginx/uwsgi_params;

            #这个是uwsgi.ini中的socket的端口,用此nginx转发给uwsgi

            uwsgi_pass 127.0.0.1:622;

            #以下的三个,实际上uwsgi.ini中有所申明,无需了(或者这里保持,而uwsgi.ini中出去也可以)

            #uwsgi_param UWSGI_SCRIPT /home/modle/html/flask/flask_learn/index.py;

            #uwsgi_param UWSGI_CHDIR /home/modle/html/flask/flask_learn/

            #uwsgi_param UWSGI_PYHOME TO_DEFINE_VERSION_PYTHON;

        }

    }

    保存之后,运行

    service nginx restart

    就可以了,访问的入口是rrr.com:5000。

    相关文章

      网友评论

          本文标题:Linux部署flask项目

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