Pass url after trailing slash to proxy_pass

How do you redirect everything after* the trailing slash to an internal server? I hope that made sense. Example: www.foo.com/v2/api should go to localhost:3000/api or www.foo.com/v2/something goes to localhost:3000/something. I have this:

location ~ ^/v2/(.*) {
   #rewrite ^/(.*)$ $1 break;
   proxy_pass http://localhost:3000/$1;
}
foo.com/v2/<ANYTHING-HERE-SHOULD-MOVE-BEHIND-PORT-3000>

*see above

Based on the web, this should work, right? But it's not. An nginx task was thrown at me without notice but by looking at that, should it have worked?


Solution 1:

You probably need to define a resolver as you are using proxy_pass with variables.

However, the functionality you are looking for can be achieved more simply using a prefix location rather than a regular expression:

location /v2/ {
    proxy_pass http://localhost:3000/;
}