area/configurationarea/httpenhancementhelp wanted
仓库指标
- Star
- (27,997 star)
- PR 合并指标
- (平均合并 8天) (30 天内合并 378 个 PR)
描述
Envoy normalizes header keys, but not their values for good reason. We use a combination of the :authority header as well as the request path for H1/2 service routing. We have multiple services tied to a single filter chain and virtual host.
excerpt...
"routes": [{
"match": {
"headers": [{
"exactMatch": "myservice.mydomain.com",
"name": ":authority"
}],
"prefix": "/servce/path"
},
"route": {
"cluster": "mycluster",
}
}]
}
However, if there's a discrepancy in the header sent by the client, where for example they use an uppercase letter, then our route matching will not work; :authority = MYservice.MYdomain.com
As I see it, there are at least two options:
- add a flag to ignore the case for the header matchers; note that we already have the ignore case flag for the string matchers.
- ability to normalize some headers values
We could of course have a workaround using a regex, but the performance implications don't make it a viable option.
similar issues