Ssl Google云负载平衡器-502-未经管理的实例组运行状况检查失败

Ssl Google云负载平衡器-502-未经管理的实例组运行状况检查失败,ssl,nginx,google-cloud-platform,google-compute-engine,rhel7,Ssl,Nginx,Google Cloud Platform,Google Compute Engine,Rhel7,我目前有一个HTTPS负载平衡器设置,它使用443前端、后端和运行状况检查为一个主机nginx实例提供服务 通过浏览器直接导航到主机时,页面将正确加载有效的SSL证书 当尝试通过负载平衡器IP访问站点时,我收到一条502服务器错误消息。我检查了Google日志,发现负载平衡器出现了“未能选择后端”错误。我还注意到它没有通过健康检查 一些挖掘让我找到了以下两个链接: 问题#1-不确定服务器上是否正在运行google地址管理器 (RHEL 7)。我在中没有看到HTTPS负载平衡器IP的条目 路线。

我目前有一个HTTPS负载平衡器设置,它使用443前端、后端和运行状况检查为一个主机nginx实例提供服务

通过浏览器直接导航到主机时,页面将正确加载有效的SSL证书

当尝试通过负载平衡器IP访问站点时,我收到一条502服务器错误消息。我检查了Google日志,发现负载平衡器出现了“未能选择后端”错误。我还注意到它没有通过健康检查

一些挖掘让我找到了以下两个链接:

问题#1-不确定服务器上是否正在运行google地址管理器 (RHEL 7)。我在中没有看到HTTPS负载平衡器IP的条目 路线。安装了Google SDK。这是谷歌提供的图片 如果我在控制台中更新IP地址,它也会在 主持人。如何检查google地址管理器是否正在运行 RHEL7

所有谷歌服务的输出

[root@server]# systemctl list-unit-files
google-accounts-daemon.service                enabled
google-clock-skew-daemon.service              enabled
google-instance-setup.service                 enabled
google-ip-forwarding-daemon.service           enabled
google-network-setup.service                  enabled
google-shutdown-scripts.service               enabled
google-startup-scripts.service                enabled
问题2:没有收到200 OK的回复。证书是有效的 在LB和服务器上也是如此。跑步时,卷曲身体抵住身体 我收到此响应的应用服务器


想法?

您应该为健康检查服务添加防火墙规则-
并确保您的后端服务在负载平衡器ip上侦听(最简单的是绑定到
0.0.0
)-对于内部负载平衡器来说,这是绝对正确的,但对于带有外部ip的HTTPS则不确定。

一些更新和经验教训:

我发现“谷歌地址管理器”现在已经被弃用,取而代之的是正在运行的“谷歌ip转发守护程序”

[root@server ~]# sudo service google-ip-forwarding-daemon status
Redirecting to /bin/systemctl status google-ip-forwarding-daemon.service
 google-ip-forwarding-daemon.service - Google Compute Engine IP Forwarding Daemon
   Loaded: loaded (/usr/lib/systemd/system/google-ip-forwarding-daemon.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2017-12-22 20:45:27 UTC; 17h ago
 Main PID: 1150 (google_ip_forwa)
   CGroup: /system.slice/google-ip-forwarding-daemon.service
           └─1150 /usr/bin/python /usr/bin/google_ip_forwarding_daemon
有一个活动防火墙规则允许端口443的IP范围为130.211.0.0/22和35.191.0.0/16。目标也已正确设定

最后,运行状况检查当前使用默认的“/”路径。开发人员在开发过程中在站点前面放置了身份验证。如果我绕过SSL证书错误,我在运行curl时会收到401未经授权的证书。这是我们遇到的问题的根本原因。为了补救,我们修改了nginx基本身份验证配置,以禁用对新路由的身份验证(例如/health)

一旦在运行状况检查时更新了nginx配置并将路径更新为新的/运行状况路由,我们就收到了有效的200个响应。这允许健康检查返回健康实例,并允许LB通过流量

root@server.com  curl -I https://app-server.com
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html
[root@server ~]# sudo service google-ip-forwarding-daemon status
Redirecting to /bin/systemctl status google-ip-forwarding-daemon.service
 google-ip-forwarding-daemon.service - Google Compute Engine IP Forwarding Daemon
   Loaded: loaded (/usr/lib/systemd/system/google-ip-forwarding-daemon.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2017-12-22 20:45:27 UTC; 17h ago
 Main PID: 1150 (google_ip_forwa)
   CGroup: /system.slice/google-ip-forwarding-daemon.service
           └─1150 /usr/bin/python /usr/bin/google_ip_forwarding_daemon