Mazzy
Mazzy

Reputation: 14189

redirect all the requests to api server with nginx

I'm using Nginx as a reverse proxy to redirect api request to one my server. Unfortunately it is not working properly

what I'm trying to achieve is to proxy all requests like /api/v1/* to http://my-api-server/api/v1/*

here is the rule I have written

location /api/v1/ {
   proxy_pass http://my-api-server/api/v1/
}

but it doesn't work. any idea?

Upvotes: 12

Views: 18482

Answers (2)

gaolong zhao
gaolong zhao

Reputation: 111

You need to add the proxy_redirect attribute:

location /api/v1 {
    proxy_redirect  http://my-api-server/  /api/v1;
    proxy_pass http://my-api-server;
}

Upvotes: 3

Landys
Landys

Reputation: 7727

Try

location /api/v1/ {
   proxy_pass http://my-api-server
}

In proxy_pass directive, if you specify the URI which is /api/v1/ in your case, all matched URIs will be replaced as the exactly specified one /api/v1/ but not /api/v1/*.

Upvotes: 10

Related Questions