location proxy_pass的学习资料

1. nginx 反向代理proxy_pass  / 没有/的区别

在nginx的反向代理到新的URL时,要注意新的url是否加上了/;如果加上了/那就代表绝对路径,不需要加location的匹配字符串了:

location ^~/web_test/
{
     #proxy_set_header Host $host;
     proxy_set_header Host test.com;
     proxy_set_header X-Real-IP $remote_addr;
     ........
     proxy_pass http://test.com:8080/;   #后面加了/   --->访问的http://test.com/
}
如果后面加了 /;表示proxy_pass后面的URL就是绝对路径,那用户访问的是:http://test.com/

location ^~/web_test/
{
     #proxy_set_header Host $host;
     proxy_set_header Host test.com;
     proxy_set_header X-Real-IP $remote_addr;
     ........
     proxy_pass http://test.com:8080;   #后面没有加了   --->访问的http://test.com/web_test;
}

后面没有加/;表示proxy_pass的URL是相对路径,需要加上location 后面匹配的字符串。

所以,上面这个用户请求实际上是:http://test.com/web_test


2. nginx 反向代理中location 的基本语法:

(1).  location =/    和 location / 的区别:


(2). ~    ^~   /str 的区别

~:是正则匹配;即 localtion 后面的匹配字符串中可以有正则表达式,比如:*   [d+] 等

^~:这个是不继续匹配;在nginx的反向代理中有多个正则匹配;~   /    都是默认的最大匹配规则,也就是对所有的location 进行正则匹配,找到最大匹配的然后进行跳转;

但是这样比较浪费时间,然后nginx 反向代理要求的性能;所以用^~ 来设置只要匹配成功一个就不再向下匹配了;就跟循环里面的 break 功能一样;

/str:字符串匹配;也就是说必须字符串是相同的;/str 就是匹配跟/str 开头的 URL





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值