美文网首页
如何部署简单python + flask应用

如何部署简单python + flask应用

作者: lwhome | 来源:发表于2016-03-12 22:43 被阅读0次

    这是一篇教使用python和flask框架来部署最基本的后端服务的文章,适用于想用python开发后台程序的同学。阅读这篇文章需要python和flask的基本知识,以及构建后台程序所需要的网络常识。
    文章中出现的概念可以看另一篇入门文章。
    所需工具:
    python3.4
    flask
    nginx
    gunicorn
    supervisor

    系统环境:
    Ubuntu 14.04LTS

    我们先写一个最基本的flask应用:

    demo.py

    from flask import Flask app = Flask(**name**) @app.route('\') def index(): return 'Hello World.'
    if __name__ == __main__: app.run()
    运行这个py文件,打开浏览器访问127.0.0.1:5000就能看到显示Hello World的页面 .
    如果让这个flask引用监听来自公网ip的请求,理论上你跑此程序的机器就相当于一个服务器了,然而这个服务器并不完美,所以我们需要nginx和gunicorn来增加它的功能,让它真刀真枪上生产环境的时候能按要求运行。

    flask自带的WSGI框架性能很差劲,只能适用于开发环境调试使用。我们用专业一点的gunicorn(还有很多其他优秀的框架)替代flask自带的WSGI框架。

    配置完后,通过命令’/usr/local/bin/gunicorn -b127.0.0.1:5000‘启动应用。打开浏览器访问127.0.0.1:5000,同样能够得到返回页面

    然而gunicorn也仅仅是一个python的WSGI框架而已,要让它真正处理来自互联网的各类访问功能还是有点欠缺,这时候就需要用到大名鼎鼎的nginx 服务器来替gunicorn遮风挡雨了。

    Ubuntu下安装nginx可以用命令

    sudo apt-get install nginx

    安装后需要进行下配置:

    1. cd /etc/nginx/sites-available

    2. sudo vi test (test为配置名称,可以根据自己项目进行命名)

    3. test文件的配置为:
      server {
      listen 80; # 监听80端口
      location / {
      proxy_pass http://127.0.0.1:5000; # 代理本机127.0.0.1:5000的服务
      }
      location /static {
      alias /home/ubuntu/myproject/myblog/app/static; # 负载均衡
      }
      }

    4. cd ..

    5. cd sites-enable

    6. sudo ln -s ../sites-available/lwhile . (创建软链接,别漏掉最后的.)

    7. sudo service nginx reload

    8. sudo service nginx restart

    这样nginx的基本配置文件就写好了 接下来我们配置进程管理工具supervisor supervisor可以在后面启动你的python进程,这样很方便
    1.cd /etc/supervisor/conf.d

    2.sudo vi test.conf (test为文件名)

    [program:test]
    command = /usr/local/bin/gunicorn -b127.0.0.1:5000 /home/ubuntu/myproject/test.py

    3.sudo supervisorctl

    4.reload

    5.start test

    如果一切正常,做完这所有步骤之后,现在公网的ip访问你的主机,就可以打开你的flask应用了

    相关文章

      网友评论

          本文标题:如何部署简单python + flask应用

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