温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Windows环境将Flask应用程序部署在tornado+nginx的简单方法

发布时间:2020-07-06 18:42:05 来源:网络 阅读:4287 作者:wenguonideshou 栏目:开发技术

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

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

from somewhere import app  #somewhere 表示的包含Flask的实例,如app = Flask(__name__)
if __name__ == "__main__":
    app.run(debug=True)

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

#coding=utf-8#!/usr/bin/python
from tornado.wsgi import WSGIContainerfrom tornado.httpserver import HTTPServerfrom tornado.ioloop import IOLoopfrom run import app
http_server = HTTPServer(WSGIContainer(app))
http_server.bind(5000, "0.0.0.0")  # 对外开启访问
http_server.start(1)
# http_server.listen(5000)  #或者只监听127.0.0.1的默认端口
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 就可以生效:


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI