AWS路径型负载均衡特定路径监听器规则未触发求助
针对你遇到的www.abc.com/game路径被错误重定向的问题,核心原因大概率出在规则匹配逻辑、条件组合或优先级配置上,具体排查方向如下:
路径匹配模式错误
ALB的路径匹配分精确匹配、前缀匹配、通配符匹配三类。如果给/game规则配置的是精确匹配,那只有请求路径完全等于/game时才会触发;若用户实际请求的是/game/(带末尾斜杠)、/game?param=1(带参数)或者/game/subpath(子路径),精确匹配规则就不会命中,请求会直接落到后续的重定向规则里。建议把/game的规则改成前缀匹配(/game/*),确保所有/game开头的路径都能被匹配。规则条件组合错误
你提到规则里包含了匹配https://前缀的条件,这完全多余——因为这条规则配置在HTTPS监听器上,ALB只会把HTTPS请求转发到这个监听器,不需要再在规则里添加协议匹配条件。如果你的规则是把host匹配www.abc.com、路径匹配/game和协议匹配https设为逻辑AND,那这个协议条件永远无法满足(ALB规则里的协议匹配针对HTTP/HTTPS协议类型,而非带://的字符串),直接导致整个规则失效。删掉这个多余的https前缀匹配条件即可。规则优先级配置颠倒
ALB的规则优先级遵循数值越小优先级越高的逻辑,比如优先级1的规则会比优先级100的先执行。如果误把/game规则的优先级设成了大于重定向规则的数值(比如/game规则优先级是100,重定向规则是1),请求会先被重定向规则匹配,根本轮不到/game规则生效。去控制台确认两条规则的优先级数值,确保/game规则的优先级数字更小。目标组健康检查异常(次要可能)
虽然你说EC2实例能直接访问,但如果目标组的健康检查配置错误(比如检查路径不是/game、端口不对、返回码不匹配),导致目标组被标记为不健康,ALB会跳过这条转发规则,把请求转到后续规则。可以去目标组控制台查看健康状态,确认实例处于健康状态。
内容的提问来源于stack exchange,提问作者somethingstrang

