李锋镝的博客 - LiFengdi.Com

  • 首页
  • 时间轴
  • 留言
  • 左邻右舍
  • 我的日常
  • 关于我
寄蜉蝣于天地 渺沧海之一粟
挫其锐 解其纷 和其光 同其尘
  1. 首页
  2. 转载
  3. 技术
  4. 正文

nginx反向代理配置去除前缀

2021年9月29日 13467点热度 0人点赞 2条评论

使用nginx做反向代理的时候,可以简单的直接把请求原封不动的转发给下一个服务。设置proxy_pass请求只会替换域名,如果要根据不同的url后缀来访问不同的服务,则需要通过如下方法:

方法一:加"/"

server {
    listen              8000;
    server_name         abc.com;
    access_log  "pipe:rollback /data/log/nginx/access.log interval=1d baknum=7 maxsize=1G"  main;

    location ^~/user/ {
        proxy_set_header Host $host;
        proxy_set_header  X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://user/;
    }

    location ^~/order/ {
        proxy_set_header Host $host;
        proxy_set_header  X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://order/;
    }
}

^~/user/表示匹配前缀是user的请求,proxy_pass的结尾有/, 则会把/user/*后面的路径直接拼接到后面,即移除user。

 

方法二:rewrite

upstream user {
  server localhost:8089 weight=5;
}
upstream order {
  server localhost:8090 weight=5;
}

server {
    listen              80;
    server_name  abc.com;
    access_log  "pipe:rollback /data/log/nginx/access.log interval=1d baknum=7 maxsize=1G"  main;

    location ^~/user/ {
        proxy_set_header Host $host;
        proxy_set_header  X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;

        rewrite ^/user/(.*)$ /$1 break;
        proxy_pass http://user;
    }

    location ^~/order/ {
        proxy_set_header Host $host;
        proxy_set_header  X-Real-IP        $remote_addr;
        proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;

        rewrite ^/order/(.*)$ /$1 break;
        proxy_pass http://order;
    }
}

proxy_pass结尾没有/, rewrite重写了url。

除非注明,否则均为李锋镝的博客 - LiFengdi.Com原创文章,转载必须以链接形式标明本文链接
本文链接:https://www.lifengdi.com/archives/transport/3652
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: nginx
最后更新:2021年9月29日

李锋镝

既然选择了远方,便只顾风雨兼程。

打赏 点赞
< 上一篇
下一篇 >
guest
您的姓名(必填)
您的邮箱(必填)
您的站点
guest
您的姓名(必填)
您的邮箱(必填)
您的站点
2 评论
最热
最新 最旧
Inline Feedbacks
查看所有评论
哥斯拉
哥斯拉
VIP
2021年9月29日 22:36

感觉方法二的rewrite有点多此一举,直接用方法一比较好吧?

0
0
回复
李锋镝
李锋镝
博主
回复  哥斯拉
2021年9月30日 10:17

@哥斯拉 适用场景不同,有的时候NGINX需要配置不同域名、不同服务,这个时候rewrite就用得着了

0
0
回复
我的
我的淘宝精品店

但使龙城飞将在,不教胡马度阴山。

最新 热点 随机
最新 热点 随机
《人生海海》读后感 人生天地间,忽如远行客。 九月你好 知足常足,知止常止。 笑一笑吧 总会过去的 眨眼立秋就过了
今天,是我的第三十一个生日阳了...开工啦~一眨眼就三年了……小记hnswlib installation failed
架构师究竟比高级开发厉害在哪? JAVA设计模式-工厂方法模式 Idea激活码 学习算法必备知识:时间复杂度与空间复杂度的计算 MySQL主键索引和普通索引的区别 知足常足,知止常止。
最近评论
游戏百科 发布于 2 周前(09月17日) 谢谢分享
电商系统开发公司 发布于 3 周前(09月16日) 感谢分享
b2b系统 发布于 3 周前(09月15日) 三年说长也不长
博客录 发布于 3 周前(09月12日) 十分赞同。
放下了 发布于 4 周前(09月05日) 放下了 再见了
有情链接
  • 志文工作室
  • 临窗旋墨
  • 旧时繁华
  • 强仔博客
  • 林三随笔
  • 徐艺扬的博客
  • 云辰博客
  • 韩小韩博客
  • 知向前端
  • 林羽凡
  • 情侣头像
  • 哥斯拉
  • 博客录

COPYRIGHT © 2022 lifengdi.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备16004681号-2