如何配置Kubernetes Ingress的auth-signin重定向至带端口地址?
解决Kubernetes Ingress auth-signin重定向带指定端口的问题
当前你的auth-signin配置里,rd参数使用$host变量只会提取域名(不含端口),导致认证完成后重定向丢失端口信息。可以通过以下两种方式解决:
方案一:使用$http_host变量自动携带端口
$http_host会完整获取请求头中的Host字段(包含端口),修改配置如下:
nginx.ingress.kubernetes.io/auth-signin: https://oauth2-qa.staging.com:9043/oauth2/start?rd=https://$http_host$request_uri
这个方式适合请求端口不固定的场景,能自动适配用户实际访问的端口。
方案二:硬编码固定端口
如果目标服务端口始终是9099,直接在rd参数里拼接端口即可:
nginx.ingress.kubernetes.io/auth-signin: https://oauth2-qa.staging.com:9043/oauth2/start?rd=https://$host:9099$request_uri
额外注意
- 确认OAuth2服务(oauth2-qa.staging.com:9043)的允许重定向列表中包含
metrics.staging.com:9099,避免认证后重定向被拦截。 - 你的
whitlist-domain和cookie-domain设置为.staging.com,带端口的域名仍属于该域范围,cookie相关配置无需调整。
内容的提问来源于stack exchange,提问作者Joe
相关产品推荐
相关产品推荐

