You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用nginx-ingress替代ingress-nginx后Keycloak出现502错误求助

Keycloak Ingress 502 Bad Gateway 问题解决

问题原因

新Ingress配置中注释掉了nginx.ingress.kubernetes.io/backend-protocol: HTTPS注解,而Keycloak的keycloak-kc-service服务暴露的8443端口使用的是HTTPS协议。nginx-ingress默认会用HTTP协议转发请求到后端,导致和Keycloak的HTTPS端口通信失败,返回502错误。

修复步骤

  1. 恢复nginx.ingress.kubernetes.io/backend-protocol: HTTPS注解,明确告诉nginx-ingress后端服务使用HTTPS协议
  2. 应用修改后的Ingress配置

修改后的完整Ingress配置

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt-prod
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS  # 恢复该注解,关键修复点
  labels:
    app: keycloak
    app.kubernetes.io/managed-by: keycloak-operator
  name: keycloak-kc-ingress
  namespace: default
spec:
  defaultBackend:
    service:
      name: keycloak-kc-service
      port:
        number: 8443
  rules:
  - host: accounts.example.com
    http:
      paths:
      - backend:
          service:
            name: keycloak-kc-service
            port:
              number: 8443
        path: /
        pathType: Prefix
  tls:
  - hosts:
    - accounts.example.com
    secretName: keycloak-tls-secret

验证方法

  • 应用配置:kubectl apply -f keycloak-ingress.yaml
  • 检查Ingress状态:kubectl get ingress keycloak-kc-ingress -n default,确认ADDRESS字段正常
  • 查看nginx-ingress pod日志:kubectl logs -n nginx-ingress $(kubectl get pods -n nginx-ingress -l app=nginx-ingress -o name),确认无SSL握手失败类错误
  • 访问https://accounts.example.com,验证Keycloak服务正常响应

内容的提问来源于stack exchange,提问作者portableunit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:40:33