【问题标题】:How to host flask app on GCP using gunicorn?如何使用 gunicorn 在 GCP 上托管烧瓶应用程序?
【发布时间】:2020-10-20 09:27:48
【问题描述】:

我正在尝试在开发模式下使用 Gunicorn 在 GCP 上托管我的超集应用程序。这是我的配置:

应用安装说明:https://superset.incubator.apache.org/installation.html 应用配置说明:https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-18-04

请注意,我正在使用以下方式打开端口侦听:

sudo ufw allow 8088

运行应用程序:

superset run -p 8088 -h 0.0.0.0

我要访问的链接:http://gcp_external_ip:8088

但它没有响应。

请注意,我已为所有 HTTP 和 https 流量设置:

这是我的命令外壳:

请让我知道我哪里出错了?我无法从我的其他系统访问服务器:

外部 ping 也会发生:

【问题讨论】:

  • 尝试使用 localhost:8088 调试,并确保上游端口 5000 是 8088 的代理
  • 没找到你吗?你的意思是添加一个标志--debug localhost:8088?
  • 先尝试 ping:external_ip:port 看看是否可以从你的机器访问
  • 是的 ping 正在发生

标签: flask google-cloud-platform gunicorn flask-restful apache-superset


【解决方案1】:

您无需更改应用程序在互联网上公开的端口 - 如果您对 8088 没问题,请使用它。

只需确保您create a GCP firewall rule 允许流量进入。默认情况下HTTP serverHTTPS server 分别打开端口80 和443。 8088端口默认被屏蔽。

为来自所有 IP 的带有“tag1”标签的实例打开端口 8080 的示例防火墙规则:

gcloud compute --project=myproject firewall-rules create port8088 --direction=INGRESS --priority=1000 --network=default --action=ALLOW --rules=tcp:8088 --source-ranges=0.0.0.0/0 --target-tags=tag1

另外 - 将“tag1”标签分配给您想要“解除阻止”的虚拟机。

【讨论】:

  • 这正是我所做的,非常感谢,这将帮助其他可能遇到此问题的人。
【解决方案2】:

问题在于设置防火墙端口并通过添加端口允许他们在防火墙设置中以 HTTP 和 https 访问。感谢@Guillem 的帮助!如果有人遇到这个问题,请添加 cmets,我会尽快与您联系。

【讨论】:

    【解决方案3】:

    允许 HTTP 在 GCP VPC 防火墙中打开 80 端口。将烧瓶应用程序的服务端口更改为端口 80

    【讨论】:

    • 只有 80 或 8080?
    • 嗯,谢谢分享,但效果不佳:-/
    • 确保您是通过 HTTP 而不是 HTTPS 访问,如果没有在 url 上硬编码,浏览器会自动理解您需要 HTTPS
    • 是的,是的,我只是每次都发出 http 请求。
    猜你喜欢
    • 2020-02-04
    • 1970-01-01
    • 2020-05-23
    • 2016-04-14
    • 2016-12-04
    • 2012-11-19
    • 1970-01-01
    • 2016-03-19
    • 2018-06-26
    相关资源
    最近更新 更多