Nginx的location优先级和重定向

编程入门 行业动态 更新时间:2024-10-22 15:27:17

Nginx的location<a href=https://www.elefans.com/category/jswz/34/1769954.html style=优先级和重定向"/>

Nginx的location优先级和重定向

Nginx的location有优先级级和匹配方式:

在http模块有server,在server模块才有location,location匹配的是uri

/test

/image

在一个server当中有多个location,如何来确定匹配哪个location。

Nginx的正则表达式:

^:字符串的起始位置

$:字符串的结束位置

*:匹配所有

+:匹配前面的字符一次或者多次

?:匹配前面的字符0次或者1次

.:任意单个字符

{n}:连续重复出现n次

{n,m}:连续重复出现n-m次

  1. z/0-9/A-Z]

[c]:匹配单个字符c

():分组

|:或

Location匹配的分类:

location/

location~*

1.精确匹配location=/test {..}

要完整的路径,一个字都不能少,也不能错

2、正则匹配location ~ / {}

locatiion^~前缀匹配,以什么为开头

location~:区分大小写进行匹配

location~*:不区分大小写进行匹配

location!~:区分大小写取反匹配

location!~*:不区分大小写取反匹配

3、location /test {}  一般匹配

www.ky32/ 匹配A

www.ky32/index.html  匹配B

    www.ky32/a.jpg    匹配E

    www.ky32/images/abc  匹配D

    www.ky32/documnets   匹配C

注:location匹配一旦匹配成功,不再向下继续匹配。

#小实验测试优先级

Location匹配的优先级:

精确匹配优先级最高……其次是正则匹配……最后是一般匹配

Location=完整路径>location^~>location~,~*>location/test>location /

工作站中配置location的原则:

1.网站首页:都是精确匹配,网站首页都是一个静态页面。匹配网站的根工作目录

location= / {

}

2.处理静态文件的请求:目录匹配后和后缀匹配

location ^~/static {

location~*\. {html|jpg|jpeg|gif|png} $ {

}

3.一般规则:动态请求,把动态请求转发的后端

location/ {

proxy_pass http://tomcat server;{

}

nginx的重定向:

rewrit:结合nginx提供的全局变量和自定义的变量,结合正则表达式以及标志位实现URI重写以及重定向。

rewrit执行顺序

  1. 执行server块里面的rewrite
  2. 执行location里面定义的rewrite
  3. 选定location中的rewrite

rewrite中可以支持if语言条判断,只有if没有else

rewrite:

rewrite<regex><replacemnet>[flag]

<regex>:正则表达式

<replacemnet>:跳转的内容或者路径

[flag]:标志位 “标记”

flag:

1.last:本条规则匹配完成后,可以继续向下匹配新的locationURI规则

2.break:本条规则匹配完之后立即终止,页面内容变化,uri不变

    redirct:临时重定向302uri的地址会发生变化

  permanent:永久重定向301uri的地址会发生变化

 临时和永久区别:搜索引擎的权重

永久重定向会加入搜索引擎的排名

临时重定向不会加入搜索引擎的权重

break:跳转,跳转的时候不会改变uri,用的比较多

last:继续匹配

lnternal redircction cycle while processing

处理请求时发生了重写或者内部重定向循环,进入了无限循环,nginx循环最多可以执行10次,超过10次,会报错,500

总结:rewrite和location都可以跳转,似乎有点像,但是区别在于rewrite是在同一域名之内更改获取资源的路径,location是对路径访问控制。

三个实验:

1.基于域名的跳转:

www.kgc 但是公司业务变更,迁移到了新的域名www.benet代替,但是旧域名不能被废除,访问kgc可以跳转到benet,并且匹配的uri不能变。

vim nginx.conf

2.基于ip访问控制:

 公司业务新版本上线,用户访问网站统一显示固定的维护页面,只有公司的192.168.233.61可以访问。

3.基于目录下.php访问,php跳转到新的页面

Vim

vim /etc/hosts

重点:

更多推荐

Nginx的location优先级和重定向

本文发布于:2023-11-17 00:15:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1635025.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:优先级   重定向   Nginx   location

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!