您的位置:首页 > 运维架构 > 反向代理

nginx反向代理配置去除前缀

2020-01-14 17:04 836 查看
众所周知我们在使用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

整理不易点个赞和关注再走吧~
  • 点赞
  • 收藏
  • 分享
  • 文章举报
TheLuan 发布了13 篇原创文章 · 获赞 4 · 访问量 411 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: