I'd like to proxy a request to another server using proxy_pass while removing the matched path prefix. I believe that one way of doing this is as follows;
location /a/ {
proxy_pass https://website.com/
}
E.g. a request to http://localhost/a/b.html
would be proxied to https://website.com/b.html
.
As far as I am aware the issue with this in non-commercial versions on NGINX is that the DNS A record for website.com
would be loaded and cached forever on startup. I've seen a technique to workaround this by using a variable such as $request_uri
in the proxy_pass directive, thus forcing NGINX to re-resolve the DNS according to the TTL of the record.
E.g.
location /a/ {
rewrite ^/a/(.*) /$1 break;
proxy_pass https://website.com/$request_uri
}
Unfortunately, it seems that the above doesn't work as it seems to still pass the /a/ prefix to the upstream.
Essentially all I want to achieve here is to proxy a request while removing the path prefix in such a way that DNS records are not cached forever.
Thanks.