Prakash
Prakash

Reputation: 279

forward matched specific location and proxy redirect it in nginx

I am trying to forward specific uri if matched to backend in nginx. For example

forward https://www.hostname.com/*/a/b/c to https://int.hostname.com/*/a/b/c (Where * is a variable auto populated from regex)

Current configuration looks like below and have no idea how to proceed on above

location /a/b/c/ {
    proxy_set_header        Host $proxy_host;
    proxy_set_header        X-Forwarded-Proto $scheme;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_read_timeout      180m;

    proxy_pass http://int.hostname.com/v2/e/t/a/b/c;
    proxy_redirect default;
}

Upvotes: 0

Views: 1570

Answers (1)

Richard Smith
Richard Smith

Reputation: 49672

If you want your location to match any URI that ends with /a/b/c/, you will need to use regular expression syntax. See this document for details.

The URI suffix of the proxy_pass statement is optional. In the absence of a URI suffix, the original URI will be passed unmodified. See this document for details.

For example:

location ~ /a/b/c/$ {
    ...
    proxy_pass http://int.hostname.com;
    ...
}

Upvotes: 1

Related Questions