nginx配置中 location和proxy_pass 后面的url 加与不加/的区别

一般我们通过location /拦截请求,通过proxy_pass反向代理转发到指定URL

如下

现有服务A

@RestController
public class Nginx8081 {
	@Value("${server.port}")
	private Integer port;
	
	@RequestMapping("/")
	public String test(){
		return "欢迎访问---"+port;
	}
}
server {
		listen 80;
		server_name www.xuxu4.com;
		location / {
			proxy_pass http://127.0.0.1:8081/;
		}
	}

该配置代表拦截所有请求 然后反向代理转发至 127.0.0.1:8081这个url

访问如下

但是如果我们指定 location 拦截特定的路径时 location /test test后面带/不带/有什么区别呢

controller中添加test01 test02请求

        @RequestMapping("/test")
	public String test01(){
		return "test"+port;
	}
	
	@RequestMapping("/test01")
	public String test02(){
		return "test01"+port;
	}

如果test后不带/

表示会拦截 如/test   /test01  /testxxxxx 这一类请求,只要是以test开头的请求都会被拦截

如果test后带/

表示只会拦截/test   或者/test/xxxx等相关请求

 

那么 proxy_pass 后面的url带/ 和 不带/有什么区别呢

比如

如果URL后不带/

@RequestMapping("/test")

输入www.xuxu4.com/test 相当于被代理到 www.xuxu4.com/test/

如果URL后带/

@RequestMapping("/")

@RequestMapping("/test")

输入www.xuxu4.com/test 相当于被代理到 www.xuxu4.com/

请求时候得带上test才能被拦截

 

 

 

 

 

 

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值