envoyproxy/envoy

Support dynamic host rewrite

Open

#16,507 opened on May 14, 2021

View on GitHub
 (7 comments) (0 reactions) (0 assignees)C++ (5,373 forks)batch import
enhancementhelp wanted

Repository metrics

Stars
 (27,997 stars)
PR merge metrics
 (Avg merge 8d) (378 merged PRs in 30d)

Description

If you are reporting any crash or any potential security issue, do not open an issue in this repo. Please report the issue via emailing envoy-security@googlegroups.com where the issue will be triaged appropriately.

Description:

Describe the issue. We would like to use Envoy to do a dynamic host rewrite and route the request to different endpoint, What we want is:

  1. fetch part of request endpoint as env variable $var1
  2. fetch value of header "x-google-service-name" as $var2
  3. using customized logic to construct the endpoint: $var1.$var2.internal.google.com and route the request
  4. return the response form upstream cluster back to customer Example: We have a request customerId123.google.com from customer along with a header x-google-service-name="sampleService" and want to construct a new endpoint customerId123.sampleService.internal.google.com and route the request using Envoy.

I've walked through Envoy docs and found dynamic forward proxy and Lua filter might be helpful, but still wanna know how will Envoy support fetch value from host/header and dynamically define as a variable?

Any suggestion is appreciated. Thanks.

[optional Relevant Links:]

Any extra documentation required to understand the issue.https://github.com/envoyproxy/envoy/issues/8768

Contributor guide