Nginx配置接口代理去除前缀

前端项目在使用nginx做接口反向代理时,有时候需要根据不同的接口前缀将请求代理到不同的服务器,但是真实的接口请求中又要去掉这个前缀。此时配置主要有两种写法 。

  • 方法一:在地址后面加/
    1
    2
    3
    4
    5
    server {
    location ^~/api/ {
    proxy_pass http://127.0.0.1:8080/;
    }
    }

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

  • 方法二:rewrite
    1
    2
    3
    4
    5
    6
    server {
    location ^~/api/ {
    rewrite ^/api/(.*)$ /$1 break;
    proxy_pass http://127.0.0.1:8080;
    }
    }

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

__END__

Live For Code
文章作者:Live For Code
文章出处Nginx接口代理去除前缀
作者签名:简单地活着, 肆意又精彩.
关于主题Hexo - Live For Code
版权声明:文章除特别声明外,均采用 BY-NC-SA 许可协议,转载请注明出处