【问题标题】:Unable to view flask app on reserved static address on Google Cloud Platform无法在 Google Cloud Platform 上的保留静态地址上查看烧瓶应用
【发布时间】:2020-07-24 08:21:41
【问题描述】:

我没有通过 Gcloud 命令行进行通常的部署方式,而是简单地将 GCP Ubuntu 实例 sshed 并通过 WinSCP 部署我的烧瓶应用程序,方法是将文件传输到我创建的 Ubuntu 实例上。我能够让它像这样运行:

我还保留了一个静态地址,以便允许用户查看 Flask 应用程序。

但是,当我尝试访问外部 IP 地址时,GCP 拒绝连接,我无法查看我的烧瓶应用程序。

我可能做错了什么?

【问题讨论】:

  • 你在 GCP 和 Ubuntu 上都打开了8080 端口吗?
  • 你的防火墙规则是什么?

标签: python flask google-cloud-platform deployment flask-sqlalchemy


【解决方案1】:

没有允许进入 tcp/8080 实例的入口流量的 VPC 防火墙规则。

第一步:在你的 GCE 实例上添加一个网络标签,allow-8080-ingress

第二步:在网页菜单下,转到VPC Network - Firewall - Create Firewall Rule 并创建一个具有以下属性的新规则:

  • 姓名:随便8080
  • 网络: [选择您的实例所属的网络]
  • 流量方向:入口
  • 匹配操作:允许
  • 目标:指定的目标标签
  • 目标标签:allow-8080-ingress(您在实例上添加的网络标签)
  • 来源过滤器: IP 范围
  • 源 IP 范围: 0.0.0.0/0
  • 指定协议和端口:检查tcp并添加8080

你没有附加你的烧瓶代码,但如果你像这样启动它,它就会工作:

if __name__ == '__main__':     
  app.run(host='0.0.0.0', port=8080)

...能够通过公共IP访问它:

【讨论】:

  • 同样在 Ubuntu 上,您应该通过在终端中输入 sudo ufw allow 8080/tcp 来允许传入端口到 8080
  • 你可能是对的。我现在正在测试。这取决于使用的模板图像。如果属实,将更新答案。感谢您指出这一点。
  • 嘿@RezaBehzadpour。我转载了。不需要在iptables中打开8080。 if __name__ == '__main__': app.run(host='0.0.0.0', port=8080) 完成了这项工作。我在答案中附上了屏幕截图
  • 干得好@NeoAnderson。
猜你喜欢
  • 2021-01-05
  • 1970-01-01
  • 1970-01-01
  • 2020-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-06
相关资源
最近更新 更多