【问题标题】:Google Cloud HTTP Load Balancer can't connect to my instanceGoogle Cloud HTTP 负载均衡器无法连接到我的实例
【发布时间】:2018-08-01 20:42:25
【问题描述】:

我创建了一个 HTTP 负载平衡器,基本上从端口 80 重定向到端口 8080。我实例上的服务器在端口 8080 上运行。 我可以直接连接到服务器但LB无法连接到实例,既直接访问LB的IP,健康检查也总是失败。 LB 使用的实例组仅由该单个实例组成。

我读过Google Compute Engine health checks failing 并且 google-address-manager 正在运行。但是,在运行 ip route table list local 时,我的 LB 没有路由。上述问题中的用户正在使用网络负载平衡而不是 HTTP 负载平衡(就像我一样)所以我不知道这是否相关?

或者可能与防火墙有关?我已将我的 LB 的 ip 地址添加到允许 tcp:8080 的防火墙规则中

有没有人知道我该如何解决这个问题?我对 debian 和 gcp 没有经验。 显示我只是尝试运行上述问题中引用的 route add 命令?如果是这样,为什么 google-address-manager 没有添加路由?

提前谢谢你!

【问题讨论】:

    标签: google-compute-engine


    【解决方案1】:

    您需要确保将实例组上的端口映射设置为正确的端口,在您的情况下为 8080。

    首先,编辑您的实例组并将端口名称和端口更改为 8080:

    然后,导航到您的 http 后端设置并将默认端口更改为您在实例组中配置的端口名称。

    最后,确保您的防火墙规则允许从 0.0.0.0/0 或至少从 HTTP 负载平衡器的 IP 地址 (130.211.0.0/22) 访问端口 8080

    【讨论】:

    • 感谢您的回答!但是,我检查了我的设置,它们与您解释的一样。您对我可以检查的内容还有其他想法吗?
    • 我刚刚开始工作!而不是 130.211.0.0/22 我在防火墙规则中有我的 LB 公共 IP。为什么我应该添加 130.211.0.0/22 而不是我的 LB 的 IP?太感谢了! :-D
    【解决方案2】:

    我遇到了同样的问题,并通过为运行状况检查器添加防火墙规则(与您的 LB 的 IP相同!)来修复它。有关说明,请参阅 https://cloud.google.com/compute/docs/load-balancing/health-checks?hl=en_US#http_and_https_load_balancing

    【讨论】:

    • 好吧,伙计们,这救了我的命。现在一切都为我工作。显然,在允许任何流量进入实例之前,必须首先通过健康检查。 stackoverflow.com/questions/32188284/…我真的很惊讶为什么默认情况下没有为我们设置。
    【解决方案3】:

    就我而言,我没有正确配置HTTP health check

    我使用“/”作为路径,但在我的后端,“/”重定向到登录页面 (HTTP 301),该页面以 HTTP 200 进行响应。

    健康检查不遵循重定向,每个 HTTP 响应代码 != 200 都被假定为不健康(来自Debugging Health Checks in Load Balancing on Google Compute Engine)。

    所以,我将我的 path 更改为“/login”,这解决了我的问题。

    【讨论】:

      猜你喜欢
      • 2020-02-12
      • 2021-06-07
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多