dockernginxendpointnginx-reverse-proxynginx-config

How does Nginx proxy_pass pass a route parameter


I'm trying to make an api call to an internal docker container, but for every request url I have to make a proxy_pass in the Nginx config. I've read articles that the slashes at the end should work to pass all after de certain url to the proxy_pass.

Read here (redirect table)


Example

www.example.com/api -> redirects to correct endpoint

www.example.com/api/2020 -> this doesn't redirect to http://api/2020

Configuration

location = /api/ {
   proxy_pass http://api/;
}

So why doesn't this configuration pass the 2020 'parameter' to the api endpoint? It works when I make a configuration like this:

location = /api/2020 {
   proxy_pass http://api/2020;
}

But the problem is that it's a parameter so it can possibly be any number, how to solve this?

I've read other posts, but I ask this question again to get a broader understanding of the passing possibilities for parameters. Is it really necessary to use Regex for this?


Solution

  • Remove exact matching, just use

    location /api/ {
       proxy_pass http://api/;
    }
    

    without any regexes.