nginx.ingress.kubernetes.io/force-ssl-redirect自定义端口不生效
解决Nginx Ingress自定义端口下HTTP到HTTPS跳转端口错误的问题
当你通过nginx.ingress.kubernetes.io/force-ssl-redirect注解实现HTTP到HTTPS强制跳转时,若将Ingress Controller Service的端口改为自定义的8080(HTTP)和8443(HTTPS),默认跳转仍会指向443端口——这是因为force-ssl-redirect注解默认使用Nginx Ingress的默认HTTPS端口,不会自动适配你配置的自定义端口。
解决步骤
- 在你的Ingress资源中添加
nginx.ingress.kubernetes.io/ssl-redirect-port注解,显式指定跳转目标的HTTPS端口:apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: your-ingress-resource annotations: nginx.ingress.kubernetes.io/force-ssl-redirect: "true" nginx.ingress.kubernetes.io/ssl-redirect-port: "8443" # 指定自定义HTTPS端口 spec: tls: - hosts: - your-domain.com secretName: your-tls-secret rules: - host: your-domain.com http: paths: - path: / pathType: Prefix backend: service: name: your-service port: number: 80 - 应用修改后的Ingress配置:
kubectl apply -f your-ingress.yaml
验证
访问HTTP自定义端口(8080),检查响应的Location头是否指向https://your-domain.com:8443/,确认跳转端口正确。
内容的提问来源于stack exchange,提问作者SledgeHammer
相关产品推荐
相关产品推荐

