nginx反向代理时去掉匹配前缀的方法
引言
最近遇到了同一个二级域名下同时配置多个项目的需求,且后端服务需要统一匹配api前缀,所以通过nginx的location配置解决该问题,接下来就通过这篇文章给各位读者讲解nginx在反向代理时如何去掉前缀的方法。
问题描述
正常情况下:在nginx配置文件中中设置了 location /api/ 时 浏览器访问 /api/test 反向代理到后端服务后,后端服务接收到的url地址实际还是/api/test
需要实现的功能需求:访问url路径/api/test 经过nginx反向代理后,到达后端服务的实际url地址为/test。
问题解决
那么就需要按照如下方法进行修改,首先需要打开nginx的conf配置文件,或者打开你引入的单独子配置文件。
以下是原nginx配置文件中location部分的配置内容:
1 | location ^~/api/ { |
将上述代码修改为如下nginx location代码:
1 | location ^~/api/ { |
需要注意和修改的是:在proxy_pass的最后加一个/即可。
修改完成后执行 nginx -s reload
刷新nginx配置文件,然后打开浏览器测试即可。
必须要执行nginx -s reload后才会生效,或者kill掉nginx进程重新执行也是可以的。
经过这样修改后,你的nginx在你使用浏览器访问/api/test后,实际访问的后端服务url就是localhost:12345/test了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ProjectAn!
评论
你无需删除空行,直接评论以获取最佳展示效果