能否将Amazon Cognito与NLB搭配使用?ALB适配虚幻像素流存在重连问题
结论先行:Amazon NLB(网络负载均衡器)无法直接与Amazon Cognito集成做认证。
NLB是工作在OSI第4层的负载均衡器,只负责TCP/UDP流量的转发,没有ALB(应用负载均衡器)那种第7层内容处理能力——ALB之所以能和Cognito对接,是因为它内置了OAuth2/OIDC的认证逻辑,能直接处理登录跳转、令牌验证这些操作,NLB做不到这一点。
你提到用ALB适配虚幻像素流时每2分钟重连一次,大概率是ALB的空闲超时设置导致的。ALB默认空闲超时是60秒,最长能调到4000秒,虚幻像素流的长连接可能因为超时被ALB主动断开,才会频繁重连。
针对你的需求,给几个可行的方向:
优先尝试调整ALB配置解决重连问题
直接修改ALB目标组的空闲超时时间,把它设得足够长(比如和你预期的像素流会话时长匹配),同时确保后端虚幻服务器的连接超时配置和ALB保持一致。这是最省事的方案,不用换负载均衡器。NLB + 中间认证代理层
如果一定要用NLB,就得在NLB和像素流服务器之间加一层认证代理(比如Nginx、Envoy)。由代理层和Cognito对接,完成OIDC授权码流程、验证用户的JWT令牌,只有通过认证的流量才会转发到后端。这种方式既保留了NLB的高性能转发能力,又实现了Cognito的认证功能。进阶方案:GWLB + 安全服务
要是想找AWS原生的集成方案,可以考虑用Gateway Load Balancer(GWLB)搭配支持Cognito认证的第三方安全服务,或者结合AWS WAF+Lambda@Edge来验证JWT,但这个方案复杂度较高,除非有特殊需求不推荐。
内容的提问来源于stack exchange,提问作者JaYaKaAzZ

