【发布时间】:2018-07-05 20:35:27
【问题描述】:
我正在将烧瓶服务器部署到 Digital Ocean 液滴。
from flask import Flask
app = Flask(__name__)
@app.route("/a/<string:b>")
def deploy(b):
return "Response"
使用以下命令:
FLASK_APP=server.py python -m flask run --host=0.0.0.0 --port=5555
当我在本地部署应用程序时,我可以通过这样做来接收响应
curl -XGET localhost:5555/a/random
在 droplet 上部署时,它在内部工作,但在外部调用 droplet 时(尽管在 TCP 上暴露了 5555 端口),它不会连接。
有什么可以改变的?我还通过docker在同一个droplet上部署了flask graphql服务器,效果很好。
【问题讨论】:
-
你用什么命令暴露了 5555/tcp 端口?
-
netstat -nltp的输出是什么?您是否启用或运行了 DigitalOcean 防火墙? ufw 在液滴上?如果是,ufw status的输出是什么? -
我已经通过 Web 界面暴露了端口。同样的方法适用于不同端口上的 flask_graphql 服务器。我将运行您建议的命令并稍后报告!
-
这是来自 netstat 的输出:活动 Internet 连接(仅限服务器) Proto Recv-Q Send-Q 本地地址外部地址状态 PID/程序名称 tcp 0 0 0.0.0.0:5555 0.0.0.0: * 听 3971/python3
-
@Oliver - netstat 输出见上文
标签: python flask digital-ocean