【发布时间】:2017-12-09 02:37:39
【问题描述】:
我已将在 GCP 上运行的 linux apache 网络服务器放在 google 负载平衡器后面。因为我只想要 https 流量,所以我将端口 80 重定向到 443,如下所示:
<VirtualHost *:80>
ServerName spawnparty.com
ServerAlias www.spawnparty.com
DocumentRoot /var/www/html/wwwroot
Redirect permanent / https://www.spawnparty.com
</VirtualHost>
我已经给虚拟机一个外部 IP 地址来测试重定向是否有效。
然后我配置了负载平衡器。我已经做到了,这样 frondend 接受 http 和 https。对于后端,我做了 2 项服务:
一个使用http,一个使用https,这样如果somoeone通过http进入,它会被转发,然后通过上面显示的代码重定向到https。
对两个后端服务进行基本的健康检查:
对于http:端口:80,超时:5s,检查间隔:5s,不健康 阈值:2 次尝试
对于https:端口:443,超时:5s,检查间隔:5s,不健康 阈值:2 次尝试
https 工作正常,1 个实例中的 1 个状态健康,但 http 健康检查状态 1 个实例中的 0 个健康
如果将健康检查从 http 更改为 https 并再次返回 http 后端服务,它会在短时间内工作,但几分钟后它会再次显示 1 个实例中的 0 个是健康的。
我必须改变什么才能保持健康?
【问题讨论】:
-
我有根据的猜测是,HTTP 的重定向不是负载均衡器健康检查器所期望的。为什么不只需要 HTTPS 健康检查,因为您的 HTTP 配置直接依赖于 HTTPS?
-
如果由我来决定,我根本不会使用健康检查,但如果没有健康检查,我将无法创建负载均衡器。每个后端服务都需要进行健康检查。由于此后端服务正在侦听 http,因此运行状况检查也需要检查 http。
标签: networking google-cloud-platform google-compute-engine load-balancing google-cloud-http-load-balancer