使用Nginx做反向代理的时候如果需要根据不同的url代理到不同的服务器,需要通过以下法:

#1. 地址后面加/

server {
  location ^~/v1/ {
      proxy_pass http://localhost:8080/;
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

^~/v1/表示请求前缀是v1的请求,proxy_pass最后加上/,就会把v1去除,比如请求的地址是v1/api/test,则代理发出的请求是http://localhost:8080/api/test

2. 使用rewrite

server {
  location ^~/v1/ {
      rewrite ^/v1/(.*)$ /$1 break;
      proxy_pass http://localhost:8080;
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

使用 rewrite重写了url 注意 proxy_pass后不需要加/