有时几个实例只响应错误5xx,我想知道是否有解决方案将请求重定向到其他实例?
谢谢
根据GCP LB文档,只重试超时,然后仅在特殊情况下。不会重试错误代码响应。
要解决此问题,您可以在实例组上创建HTTP运行状况检查(还有https,tcp和http2运行状况检查)。
创建HTTP运行状况检查
$ HOST_HEADER=www.example.com
$ gcloud beta compute health-checks create http hc-http-port-80 \
--description="Simple HTTP port 80 health check" \
--check-interval=5s \
--timeout=5s \
--healthy-threshold=2 \
--unhealthy-threshold=2 \
--port=80 \
--host=${HOST_HEADER}
创建后,您可以将其与LB关联
$ cloud compute backend-services update [BACKEND_SERVICE_NAME] \
--region [REGION] \
--health-checks [HEALTH_CHECK_NAME]
查找后端服务ID如果您不知道后端服务的名称,可以使用此命令获取它
gcloud compute backend-services list \
--filter="loadBalancingScheme=EXTERNAL" \
--filter="protocol=HTTP"