K8s中通过Nginx反向代理访问后端服务出现502错误求助
Nginx反向代理502 Bad Gateway错误排查建议
验证后端服务的可达性
进入Nginx Pod内部,执行命令测试能否直接连通后端服务:curl -v https://loki-write.logging.svc.cluster.local:3100/memberlist或用端口检测工具确认端口开放情况:
nc -zv loki-write.logging.svc.cluster.local 3100如果无法连通,优先排查后端Service配置、Pod运行状态或集群网络策略限制。
检查proxy_pass配置合理性
当前配置中proxy_pass拼接了$request_uri,结合精确匹配的location = /memberlist,转发地址为https://loki-write...:3100/memberlist。若后端服务的目标接口路径并非/memberlist,会导致请求无效。可尝试修改proxy_pass为:proxy_pass https://loki-write.logging.svc.cluster.local:3100;利用Nginx精确匹配的路径自动转发特性,避免手动拼接可能带来的路径错误。
排查SSL证书信任问题
Nginx作为HTTPS客户端连接后端时,若后端证书未被Nginx信任,会导致连接失败返回502。可临时在location块中添加配置测试:proxy_ssl_verify off;若问题解决,需将后端服务的CA证书添加到Nginx信任存储,或通过
proxy_ssl_trusted_certificate指定信任证书路径。查看Nginx错误日志
直接查看Nginx Pod内的错误日志,获取具体报错原因:kubectl exec -it loki-gateway-84ccff7fd7-nt49p -- cat /var/log/nginx/error.log日志会明确提示连接超时、证书验证失败、后端拒绝连接等核心问题。
确认后端服务状态
检查loki-write对应的Pod是否正常运行、无重启记录,同时查看后端Pod日志,确认是否有请求到达或服务内部报错:# 查看loki-write Pod状态 kubectl get pods -n logging -l app=loki-write # 查看后端Pod日志 kubectl logs <loki-write-pod-name> -n logging
内容的提问来源于stack exchange,提问作者joker57
相关产品推荐
相关产品推荐

