AlinsRan opened a new pull request, #2784:
URL: https://github.com/apache/apisix-ingress-controller/pull/2784

   ### What this PR does
   
   Changes the default of `listener_port_match_mode` from `auto` to `off`.
   
   ### Why
   
   `auto` mode, introduced in #2703 and first shipped in 2.1.0, injects a 
`server_port` route var into any route that matches multiple listener ports — 
with no config change from the user.
   
   The injected value is the **Gateway listener port** (e.g. `80`/`443`), but 
the APISIX `server_port` variable reflects the port the **data plane actually 
listens on** (e.g. `9080`/`9443` in the standard Helm deploy, where the Service 
maps `80/443 → 9080/9443`). The two never match, so every multi-listener route 
returns `404` after upgrading to 2.1.0. See #2782.
   
   This is a silent breaking change: before #2703 routes carried no 
`server_port` var and matched on any port.
   
   ### What changes
   
   - Default `ListenerPortMatchMode` is now `off`; empty/unknown modes also 
normalize to `off`, so port-var injection is strictly opt-in.
   - Updated sample config, configuration-file docs, tests, and CHANGELOG.
   
   `auto` and `explicit` remain available for users who run APISIX with 
`node_listen` aligned to their Gateway listener ports.
   
   ### Note
   
   This only changes *when* injection happens. The deeper issue — matching 
`$server_port` against the Gateway's logical listener port is incorrect under 
any port remapping — still needs a redesign and is tracked separately in #2782.
   
   Closes #2782
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to