美文网首页
Flask启动app.run(host='0.0.0.0',po

Flask启动app.run(host='0.0.0.0',po

作者: 程慕枫 | 来源:发表于2018-06-12 02:09 被阅读0次

    这段时间用Flask写了一个小项目, 尝试部署到阿里云服务器上,本来项目并不复杂,可是部署的时候却踩了很多坑。
    通过PyCharm创建项目,在app.py中做了一些配置后,是这样的:

    @app.route('/')
    def hello_world():
        return 'Hello World!'
    
    if __name__ == '__main__':
        app.run()
    

    显然,这样是失败的,查了一些资料,Flask运行app.run()是默认的127.0.0.1:5000, 命令行显示如下:

    root@iZwz98p61d8twwl8rrjhj5Z:~/iAsk/iask# python app.py 
     * Serving Flask app "app" (lazy loading)
     * Environment: production
       WARNING: Do not use the development server in a production environment.
       Use a production WSGI server instead.
     * Debug mode: off
     * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
    

    然后将app.run()指定host参数,app.run(host='0.0.0.0'), 这样解决的一个问题,外网理论上是能够访问的, 然而并没有,还是访问不了.....这个时候,又想抓狂了, 然后又将5000端口改成8000,9000, 8080等等等等, 反正就是不行, 本地浏览器访问服务器公网地址仍然无法访问。
    最终,我在网上查了N种方法,反复测试, 终于找到问题所在, 原来阿里云服务器安全组里要添加访问的端口, 而这个过程要在阿里云服务器的网页上操作。

    image.png

    如图是我为Nginx添加的80端口,
    这次将app.run()添加80端口,app.run(host='0.0.0.0', port=80), 这样再从外网访问就可以了。
    当然这样部署Flask肯定是不可以的,根本无法应用与生成环境,这只能算正式部署前的一个网络访问测试。通过Nginx,WSGI进行正式部署还有待研究。

    相关文章

      网友评论

          本文标题:Flask启动app.run(host='0.0.0.0',po

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