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

2018-06-12  本文已影响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进行正式部署还有待研究。

上一篇下一篇

猜你喜欢

热点阅读