redirect all the requests to api server with nginx

2019-07-23 13:23发布

问题:

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?

回答1:

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/*.



回答2:

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

You need to add the proxy_rredirect attribute.



标签: nginx