nginx使用笔记

代理

proxy_pass 的两种值

参考自官方文档

案例分析

假如有配置文件

location /hi {
  proxy_pass http://被代理服务器域名.com;
}

那么,如果原始请求的 URL 是 http://xxxx.com/hi的话,则被代理服务器收到的 URL 是什么?
答案是 http://被代理服务器域名.com/hi

如果配置文件是这样:

location /hi {
  proxy_pass http://被代理服务器域名.com/; # 和上面的不同仅在于:最后有一个反斜杠
}

那么,如果原始请求的 URL 是 http://xxxx.com/hi的话,则被代理服务器收到的 URL 是什么?
答案是 http://被代理服务器域名.com/,不同点在于 /hi没了。

一开始,我不知道这两种情况是有区别的。直到有次我弄混了——所有的请求都收不到了。翻了文档(nginx 的文档真的太容易找到想找的东西了,apache 的文档简直……)才知道区别:
“如果 proxy_pass 的值带有路径(也就是例二中,域名后面的一条反斜杠,也就是跟路径),那么匹配成功的 location 值(上面例子中的/hi)将被 uri 替换。“

所以如果有配置文件:

location /hi {
  proxy_pass http://被代理服务器域名.com/go;
}

http://xxxx.com/hi/hello会被映射为 http://被代理服务器域名.com/go/hello

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值