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

EKS集群中私有Ingress Controller下Sonatype Nexus登录失败求助

EKS集群Nexus私有Ingress登录异常排查

问题背景

在EKS集群中部署了Sonatype Nexus应用,已配置多个本地用户与角色。同时通过nginx Ingress控制器Helm Chart部署了两个Ingress控制器:一个对应AWS Classic Load Balancer的公网Ingress控制器,一个私有Ingress控制器,Nexus通过这两个控制器对外提供服务。

故障现象

通过公网Ingress控制器访问时,Sonatype Nexus登录完全正常;但使用相同用户凭证通过私有Ingress控制器登录时,Nexus UI提示“用户名或密码错误”或“无应用使用权限”。查看Nexus Pod日志,显示用户会话已创建,但仍无法完成登录。

已完成的排查动作

  • 验证用户凭证正确性,确认用户名和密码无误;
  • 对比公、私Ingress控制器的配置,确保二者配置相近;
  • 检查私有Ingress控制器服务的注解,确认SSL证书、SSL协商策略及SSL端口设置正确;
  • 确认DNS解析配置正常,私有Ingress控制器可解析Nexus服务器的主机名;
  • 检查Nexus服务器与私有Ingress控制器的安全组规则,确保必要通信端口已开放;
  • 检查Nexus的认证与安全相关配置,确认配置正确;
  • 监控Nexus服务器与私有Ingress控制器的日志,未发现与登录失败相关的错误或警告。

初步假设

  • 私有Ingress控制器与Nexus服务器之间可能存在网络或连通性问题,但不确定如何验证;
  • 私有Ingress控制器可能存在证书信任问题,但不确定如何验证该假设。

排查建议与解决指导

网络连通性验证

  • 在私有Ingress控制器的Pod内,执行curl -v http://nexus-service:8081/service/rest/v1/security/users,检查是否能正常获取响应,重点查看请求头、响应头的完整性;
  • 在Nexus Pod和私有Ingress Pod上分别执行tcpdump抓包,分析登录请求的完整流程:确认请求是否完整到达Nexus,响应是否正确返回给Ingress,特别关注Cookie、Authorization头的传递情况;
  • 检查EKS集群内的网络策略,确认没有限制私有Ingress控制器访问Nexus Pod的规则;
  • 验证私有Ingress对应的内部LB(如NLB/ALB)的健康检查状态,确认流量能正确转发到Ingress Pod。

证书与SSL相关验证

  • 在私有网络内的测试机上执行openssl s_client -connect <私有Ingress域名>:443,检查证书链是否完整,是否存在证书不被信任的情况;
  • 确认Nexus正确识别请求的协议和主机名:私有Ingress需添加以下注解,确保X-Forwarded-Proto、X-Forwarded-Host头正确传递给Nexus,避免会话Cookie属性错误导致登录异常:
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/configuration-snippet: |
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Forwarded-Host $host;
    
  • 对比公网Ingress和私有Ingress的Cookie传递配置,检查私有Ingress是否遗漏proxy_set_header Cookie $http_cookie;或对Cookie进行了截断、修改;
  • 查看Nexus的nexus.properties文件,确认nexus-args中配置了兼容的SSL协议(如-Dnexus.ssl.protocols=TLSv1.2,TLSv1.3),确保与私有Ingress的SSL协商策略匹配。

会话与Cookie相关排查

  • 在浏览器开发者工具中,对比公网和私有Ingress访问时的NXSESSIONID Cookie属性(包括Domain、Path、Secure、HttpOnly、SameSite),确认二者一致;
  • 使用浏览器无痕模式访问私有Ingress的Nexus,排除本地Cookie缓存的干扰;
  • 检查Nexus的会话超时配置,确认私有网络内的请求未被强制终止。

其他排查点

  • 检查私有Ingress控制器的Helm Chart配置,确认是否开启了modsecurity等特殊nginx模块,避免这些模块拦截登录请求的关键内容;
  • 对比公、私Ingress的Ingress资源配置,重点检查host、tls、annotations字段,确保没有差异导致请求处理逻辑不同;
  • 在私有网络内执行curl -X POST -u <用户名>:<密码> https://<私有域名>/service/rest/v1/security/token,验证API层面的认证是否正常,排查UI层面的跳转异常问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 23:48:13