• 将Flask应用程序部署在nginx,tornado的简单方法


    来自:http://www.xuebuyuan.com/618750.html

    在网上搜索了一下部署flask应用的方法,大部分是用wsgi部署在nginx上面,部署了很久,都没有成功,可能是我领悟能力太差,不过服务器上面的环境也够乱的有python2,python3,最后实在折腾得不行了,将uwsgi换成tornado,非常简单就搞定了,记录一下步骤,供以后参考:

    软件怎么安装就不必说了,说说几个关键的地方:

    1。Flask的入口程序为run.py,代码如下:

    #coding=utf-8
    #!/usr/bin/python

    from somewhere import app  #somewhere 表示的包含Flask的实例,如app = Flask(__name__)

    if __name__ == "__main__":

        app.run(debug=True)

    2。在run.py的同级目录添加tornado应用程序tornado_server.py来托管run.py,代码如下:

    #coding=utf-8
    #!/usr/bin/python

    from tornado.wsgi import WSGIContainer
    from tornado.httpserver import HTTPServer
    from tornado.ioloop import IOLoop
    from run import app

    http_server = HTTPServer(WSGIContainer(app))
    http_server.listen(5000)  #flask默认的端口
    IOLoop.instance().start()

    3.如果直接运行python tornado_server.py会正常运行,输出如下:

     * Running on http://127.0.0.1:5000/
     * Restarting with reloader

    但是在生产环境中得部署到性能好的nginx上去,所以我简单测试了一下,下面把相应的nginx配置文件粘出来:

    server {
            listen   80;
            server_name  abc.com;
            rewrite ^(.*) http://www.abc.com$1 permanent;
    }

    server{
            listen 80;

            #listen [::]:80 default_server;
            #access_log  /var/log/nginx/win2003_access.log  main;
            #include header_proxy.inc;

            server_name www.abc.com;

            #root   /var/www/abc;

            location / {
                #index  index.html index.htm index.php;
                #include uwsgi_params;
                #uwsgi_pass unix:/tmp/uwsgi.sock;
                proxy_pass http://localhost:5000;    #关键一点就是这里,意思是所有对http://www.abc.com:80的访问都会重定向到本机的5000端口上
            }

    }

    这里只是测试,别的一些优化比如静态文件暂没有让 nginx代理

    配置好后只需要重载一下nginx 就可以生效:

    # nginx -s reload

    看来tornado还是非常不错的,一直知道它的性能优秀,以后有空得好好研究一下。

  • 相关阅读:
    【openwrt】——lua字符串操作
    Andriod绘图的基础知识
    protect,public,private 的区别
    fatjar 将项目使用的第三方jar包打包(亲测可用)
    TPshop学习(8)微信支付
    HTTP和HTTPS有什么区别? 什么是SSL证书?使用ssl证书优势?
    LNMP安装Let’s Encrypt 免费SSL证书方法:自动安装与手动配置Nginx
    腾讯云中ssL证书的配置安装
    微信小程序:微信登陆(ThinkPHP作后台)
    转载VC6LineNumberAddin 规格严格
  • 原文地址:https://www.cnblogs.com/kiddy/p/5749687.html
Copyright © 2020-2023  润新知