1

I have reverse proxy like this:

server {
    listen 8080;

    location = /my-proxy {
      proxy_pass https://somehost/v1
    }
}

Now I would like to pass it to /v2 if HTTP request header x-version-toggle is set to v2, something like this:

server {
    listen 8080;

    location = /my-proxy {
      if ($http-x-version-toggle == 'v2') {
        proxy_pass https://somehost/v2
      }
      proxy_pass https://somehost/v1
    }
}

What is the precise syntax to achieve this?

1 Answer 1

2

You can use map operator provided by nginx

map $http_x_version_toggle $backend {
        default http://10.41.115.241:8000/; 
        v2 http://127.0.0.1:9101/;
}

And then in the location use it as below

proxy_pass $backend
Sign up to request clarification or add additional context in comments.

1 Comment

This is incomplete, for using proxy_pass with variables you also need: stackoverflow.com/questions/5743609/…

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.