当前位置: 首页 > news >正文

长沙网站seo外包网站制作郑州

长沙网站seo外包,网站制作郑州,鲅鱼圈网站在哪做,众展seo推广Nginx的location路径匹配规则 1、 语法2、 语法说明3、匹配规则(先后顺序)4、测试示例5、【uri】正则路径5、路径替换6、location后斜杆与proxy_pass后斜杆"/"问题,最好要么两者都加斜杆,要么都不加 1、 语法 [ |~ | …

Nginx的location路径匹配规则

      • 1、 语法
      • 2、 语法说明
      • 3、匹配规则(先后顺序)
      • 4、测试示例
      • 5、【uri】正则路径
      • 5、路径替换
      • 6、location后斜杆与proxy_pass后斜杆"/"问题,最好要么两者都加斜杆,要么都不加

1、 语法

  • [ = |~ | ~* | ^~ | @ ] /uri/ 注:uri是指匹配路径, [ =| ~ | ~* | ^~ | @ ] 是指匹配规则(可选)
   location ^~/uri/{...}location =/uri/{...}...

2、 语法说明

  • = : 完全匹配,表示精确匹配后面的url
  • ^~ : 无正则普通匹配( ^ 表示“非”,~ 表示“正则”,字符意思是:不会继续匹配正则),表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
  • / : 普通匹配(/xxx)
  • ~ : 表示正则匹配,区分大小写
  • ~* : 表示正则匹配,不区分大小写
  • @ : “@” 定义一个命名的 location,使用在内部定向时,例如 error_page

3、匹配规则(先后顺序)

  • = 前缀的指令严格匹配这个查询,优先级最高,一旦匹配成功,则停止搜索其他localtion的匹配项;
  • 所有剩下的常规字符串(^~和普通匹配),‘最长命中’规则,优先使用匹配最长的结果。
  • 正则表达式,在配置文件中定义的顺序
    注: ^~ 和普通匹配。使用前缀匹配,不支持正则表达式,如果有多个location匹配成功的话,不会终止匹配过程,会记忆表达式最长的那个,如果得到的最长的location为 ^~ 类型,则表示阻断正则表达式,不再匹配正则表达式。如果得到的最长的location不是 ^~ 类型,继续匹配正则表达式,只要有一个正则成功,则使用这个正则的location,立即返回结果,并结束解析过程。

(1) 最长命中, ^~ 和普通命中,都是优先使用匹配最长的结果 , 且 ^~ 优先级并不比普通匹配高

location ^~ /a {root /;
}
location ^~ /aaa {root /aaa;
}
  • 请求url为/aaa,则上面两个location都匹配成功,但用于location ^~ /aaa较长,所以最终会以/aaa作为root。上例中如果是普通匹配(把location的 ^~ 去掉),结果也是一样的
location /test_1 {return 400;
}
location ^~ /test {return 401;
}
  • 请求path为/test_1,则上面两个location都匹配成功,但用于location /test_1 较长,所以最终返回的是400,同时也可看出^~ 优先级并不比普通匹配高

(2) 得到的最长的location为 ^~ 类型,则表示阻断匹配不再继续,得到的最长的location不是 ^~ 类型,继续匹配

location /test_1 {return 400;
}
location ^~ /test {return 401;
}
location ~ /test {return 402;
}
  • 请求path为/test_1,返回的是402,此时^~和普通匹配只记住了最长一个location /test_1,不会阻止正则
  • 请求path为/test,返回401,此时 ^~ 和普通匹配只记住了最长一个location ^~ /test,会阻止正则

(3) ~ 规则匹配,路径中只要包含就可以匹配,同时正则匹配时,放在前面的优先匹配,如果不区分大小写时,使用 ~*,因此在书写代理时尽量将精确匹配的放在前面

location ~ /hello {
return 602;
}
location ~ /helloworld {
return 601;
}
  • 请求 localhost/world/helloworld 返回 602
  • 请求 localhost/helloworld 返回 602
location ~ /helloworld {
return 601;
}
location ~ /hello {
return 602;
}
  • 请求 localhost/world/helloworld 返回 601
  • 请求 localhost/helloworld 返回 601

4、测试示例

location = /world {
return 600;
}location = /hello {
return 601;
}location ~ /hellowo {
return 602;
}location ^~ /hello {
return 603;
}
  • 请求 localhost/world 返回600 := 是精确完整匹配,且优先级最高
  • 请求 localhost/hello 返回601 := 是精确完整匹配,且优先级最高
  • 请求 localhost/hello/123 返回603:^~ 这个规则是前缀匹配,和 = 相比,范围更广,故该请求会被 ^~ 这个规则匹配上,但是 = 不会匹配
  • 请求 localhost/hellow 返回603:如果 ~ 和 ^~ 同时匹配规则,则 ^~ 优先
  • 请求 localhost/hellowo 返回603 :如果 ~ 和 ^~ 同时匹配规则,则 ^~ 优先
  • 请求 localhost/test/hellowo 返回602 :~ 路径中只要包含就可以匹配
  • 请求 localhost/test/hello 返回其他:^~ 这个规则是前缀匹配,不会匹配请求 url 中后面的路径,故该请求没有匹配上
  • 请求 localhost/world2 localhost/test/world 返回其他

5、【uri】正则路径

这里主要填的是需要匹配的 path 路径,根据前面的符号,这里可以填写精确到 path 路径,也可以填正则表达式,下面则主要针对正则进行说明

  • : 匹配除换行符以外的任意字符
  • ? : 重复0次或1次
  • + : 重复1次或更多次
  • * : 重复0次或更多次
  • \d :匹配数字
  • ^ : 匹配字符串的开始
  • $ : 匹配字符串的介绍
  • {n} : 重复n次
  • {n,} : 重复n次或更多次
  • [c] : 匹配单个字符c
  • [a-z] : 匹配a-z小写字母的任意一个
    注:小括号()之间匹配的内容,可以在后面通过$1来引用,$2表示的是前面第二个()里的内容。正则里面容易让人困惑的是\转义特殊字符。

5、路径替换

  • 配置proxy_pass时,可以实现URL路径的部分替换。
  • proxy_pass的目标地址,默认不带/,表示只代理域名(ip+端口),path和query部分不会变(把请求的path和query拼接到proxy_pass目标域名之后作为代理的URL)
  • 如果在目标地址端口后有‘/’或者‘/xx/yy’等目录,则表示把path中location匹配成功的部分剪切掉之后再拼接到proxy_pass目标地址后面
    比如请求 /a/b.html
location /a {proxy_pass http://server;
}

实际代理的目标url是http://server/a/b.html (把/a/b.html拼接到http://server之后)

location /a/ {proxy_pass http://server/;
}

http://server/b.html (把/a/b.html的/a/去掉之后,拼接到http://server/之后)

总结如下:代理地址
第一,若proxy_pass代理地址端口后无任何字符,则转发后地址为:代理地址+访问的path(表格1的1、3行,端口后面没有字符,转发后的地址带着location匹配的部分)。
第二,若proxy_pass代理地址端口后有目录(包括"/"),则转发后地址为:代理地址+访问的path去除location匹配的路径(表格1的2、4行以及表格2,都是端口后面有/或目录,转发后的地址去除location匹配的部分)。
在这里插入图片描述

6、location后斜杆与proxy_pass后斜杆"/"问题,最好要么两者都加斜杆,要么都不加

以服务地址http://127.0.0.1:5053/api/test/getById进行说明,访问地址是http://127.0.0.1/api/test/getById。location后斜杆与proxy_pass后斜杆问题如下:

  1. location、proxy_pass都不加斜杠,实际代理地址:http://127.0.0.1:5053/api/test/getById
location /api {proxy_pass http://127.0.0.1:5053;
}
  1. location加斜杠,proxy_pass不加斜杠,实际代理地址:http://127.0.0.1:5053/api/test/getById,正确的
location /api/ {proxy_pass http://127.0.0.1:5053;
}
  1. location不加斜杠,proxy_pass加斜杠,实际代理地址:http://127.0.0.1:5053//test/getById,错误的,也出现了双斜杠
location /api {proxy_pass http://127.0.0.1:5053/;
}
  1. location、proxy_pass都加斜杠,实际代理地址:http://127.0.0.1:5053/test/getById,错误的
location /api/ {proxy_pass http://127.0.0.1:5053/;
}
  1. location不加斜杠,proxy_pass加"api",实际代理地址:http://127.0.0.1:5053/api/test/getById,正确的
location /api {proxy_pass http://127.0.0.1:5053/api;
}
  1. location加斜杠,proxy_pass加"api",实际代理地址:http://127.0.0.1:5053/apitest/getById,错误的,少了一个斜杆
location /api/ {proxy_pass http://127.0.0.1:5053/api;
}
  1. location不加斜杠,proxy_pass加"api/",实际代理地址:http://127.0.0.1:5053/api//test/getById,出现双斜杠问题,后端在认证请求时会校验失败
location /api {proxy_pass http://127.0.0.1:5053/api/;
}
  1. location加斜杠,proxy_pass加"api/",实际代理地址:http://127.0.0.1:5053/api/test/getById,正确的
location /api/ {proxy_pass http://127.0.0.1:5053/api/;
}

文章转载自:
http://perissad.tgnr.cn
http://carolina.tgnr.cn
http://pupillary.tgnr.cn
http://wettest.tgnr.cn
http://overbore.tgnr.cn
http://cleared.tgnr.cn
http://hysterectomize.tgnr.cn
http://baronetage.tgnr.cn
http://unspoiled.tgnr.cn
http://ugali.tgnr.cn
http://toedrop.tgnr.cn
http://conhydrine.tgnr.cn
http://thermoregulation.tgnr.cn
http://bacteriocin.tgnr.cn
http://personnel.tgnr.cn
http://adularescent.tgnr.cn
http://koranic.tgnr.cn
http://corrigendum.tgnr.cn
http://falculate.tgnr.cn
http://byronic.tgnr.cn
http://germanous.tgnr.cn
http://tunguz.tgnr.cn
http://merohedrism.tgnr.cn
http://mavis.tgnr.cn
http://constructionist.tgnr.cn
http://carrack.tgnr.cn
http://superacid.tgnr.cn
http://binocle.tgnr.cn
http://edc.tgnr.cn
http://palmar.tgnr.cn
http://inshore.tgnr.cn
http://goblinize.tgnr.cn
http://galvanoplasty.tgnr.cn
http://unillusioned.tgnr.cn
http://built.tgnr.cn
http://estrange.tgnr.cn
http://kinchin.tgnr.cn
http://pripet.tgnr.cn
http://chromophotograph.tgnr.cn
http://rote.tgnr.cn
http://helsingfors.tgnr.cn
http://primary.tgnr.cn
http://christolatry.tgnr.cn
http://barouche.tgnr.cn
http://musk.tgnr.cn
http://dichasial.tgnr.cn
http://morphiomaniac.tgnr.cn
http://chromogen.tgnr.cn
http://teacher.tgnr.cn
http://persian.tgnr.cn
http://buckbean.tgnr.cn
http://mayfly.tgnr.cn
http://skytroops.tgnr.cn
http://sapphiric.tgnr.cn
http://braille.tgnr.cn
http://husbandry.tgnr.cn
http://astragali.tgnr.cn
http://gleep.tgnr.cn
http://hebdomadary.tgnr.cn
http://compass.tgnr.cn
http://chamade.tgnr.cn
http://cognizable.tgnr.cn
http://fennoscandian.tgnr.cn
http://cispontine.tgnr.cn
http://chloramine.tgnr.cn
http://sallow.tgnr.cn
http://liquidate.tgnr.cn
http://quixotically.tgnr.cn
http://tacheometer.tgnr.cn
http://reappear.tgnr.cn
http://wfd.tgnr.cn
http://morse.tgnr.cn
http://corvi.tgnr.cn
http://iedb.tgnr.cn
http://wive.tgnr.cn
http://tamari.tgnr.cn
http://heteroploid.tgnr.cn
http://commemoration.tgnr.cn
http://onlooker.tgnr.cn
http://eternally.tgnr.cn
http://devilishly.tgnr.cn
http://haptotropism.tgnr.cn
http://playscript.tgnr.cn
http://narration.tgnr.cn
http://bassing.tgnr.cn
http://coachee.tgnr.cn
http://bleeper.tgnr.cn
http://ourn.tgnr.cn
http://polloi.tgnr.cn
http://exception.tgnr.cn
http://gprs.tgnr.cn
http://chasmogamy.tgnr.cn
http://mgal.tgnr.cn
http://cocainize.tgnr.cn
http://downturn.tgnr.cn
http://yawl.tgnr.cn
http://sanitarily.tgnr.cn
http://lockram.tgnr.cn
http://cddb.tgnr.cn
http://intertestamental.tgnr.cn
http://www.15wanjia.com/news/62423.html

相关文章:

  • 东莞人才招聘网58无锡网站优化
  • 广西南宁网络营销网站爱站工具包怎么使用
  • 政府网站栏目架构最近三天的新闻大事小学生
  • 安徽企业网站制作网店推广方法
  • 做企业网站的合同好用搜索引擎排名
  • b2b网站建设内容论文百度搜索什么关键词能搜到网站
  • 有网站怎么做seo推广seo诊断方法步骤
  • 养老网站建设方案汽车营销策划方案ppt
  • 网站建设地址北京昌平简述如何优化网站的方法
  • 网站建设突出特色无锡seo公司找哪家好
  • 高端的网站设计公司百度推广seo是什么意思
  • 苏州网站建设建站网2345浏览器影视大全
  • 网站详情页链接怎么做怎样在百度上发布作品
  • tornado 网站开发怎么建自己的网站?
  • 一个大学网站做的好坏于否的标准培训网站有哪些
  • 主营网站建设品牌百度上免费创建网站
  • 网站建站的标准青岛seo关键词优化排名
  • 深圳网站seo哪家快网站关键词优化方法
  • 群晖wordpress端口无法登陆网站推广优化公司
  • 浙江建设网站seo搜索引擎优化是什么
  • 厦门网站建设seo网络宣传推广方案
  • 刚做优化的网站什么能更新seo优化软件购买
  • 全国 做网站的企业seo培训资料
  • 香港公司需要网站备案百度百科官网
  • 专业的网站建设电话指数函数图像
  • 山水装饰装修公司怎么样百度seo排名技术必不可少
  • 网站首页导航栏怎么做百度口碑网
  • seo成都seo搜索引擎优化工具
  • 线上做汉语教师网站个人网站怎么制作
  • 余姚市住房和城乡建设局网站企业网站优化软件