nginx优先级和匹配方式

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

Nginx正则表达式:

^:字符串的起始位置

$:字符串的结束位置

*:匹配所有

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

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

.:任意单个字符

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

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

a-z,0-9,A-Z

():分组

|:或

Location匹配的分类

  1. 精确匹配 location = /test {......} | 完整的路径 一个字也不能少 也不能错
  2. 正则匹配 location ~ / {......} | {
  3. Location ^~ :前缀匹配 以什么为开头
  4. ~:区分大小写进行匹配
  5. ~*:不区分大小写进行匹配
  6. !~:区分大小写取反匹配
  7. !~*:不区分大小写取反匹配
  8. }
  9. 一般匹配 location/test {}

Location 一旦匹配成功 不再向下匹配

Location匹配的优先级:精确匹配的优先级最高>正则匹配>一般匹配

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

配置location的原则:

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

Location = / { }

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

Location ^~ /static { }

Location ~*\.{html|jpg|jpep|gif|png}${ }

一般规则:动态请求 把动态请求转发到后端

Location / {

Proxy_pass http://tomcat server;

}

Nginx重定向:

rewrite:结合nginxt提供的全局变量和自定义变量 结合正则表达式以及标志位实现url重写以及重定向

rewrite执行顺序

1)、执行server块里面的rewrite

2)、执行location里面定义的rewrite

3)、选定location中的rewrite

Rewrite中可以if语句 只有if没有else

Rewrite语法: Rewrite <regex> <reolacemnet>[flag]

<regex>:正则表达式

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

flag\]:标志位 Last:本条规则匹配完成之后 继续向下匹配新的location URI规则 Break:本条规则匹配完之后立即终止 页面内容变化 URI不变 Redirect:临时重定向 302 URI的地址会发生变化 Permanent:永久重定向 301 URI地址会发生变化 ![](https://file.jishuzhan.net/article/1714958799711768578/4fe3945354d63a53f3914355a96ee9ed.webp) break跳转 跳转的时候不会改变uri 用的比较多 last 继续匹配 如果进入死循环 nginx最多循环10次 会报错500 总结: Rewrite和location都可以跳转 区别在于rewrite是在同一域名内更改获取资源的路径 location是对路径进行访问控制 实验1、基于域名的跳转 [www.kgc.com](http://www.kgc.com "www.kgc.com") 公司业务变更 迁移到新域名[www.benet.com](http://www.benet.com "www.benet.com") 代替 旧域名不能被废除 且参数不变 ![](https://file.jishuzhan.net/article/1714958799711768578/d7f48b1f4ffe366a3b877340cbe6c9a8.webp) 实验2、基于IP访问跳转 业务新版本上线 过程中用户看不到 用户访问网站提示页面维护 只有内网 192.168.233.61可以访问 实验3、基于结尾文件跳转 ![](https://file.jishuzhan.net/article/1714958799711768578/5fd91d93cad08a3a6209c3d400fc7139.webp) 总结: Location匹配的写法 Location = / 精确匹配 完全匹配 优先级最高 Location \^\~ Location \~\* 这两个是第二优先级 Location /test 第三优先级 Location / 第四优先级 Location是访问控制 匹配到之后不再向下继续匹配 网站设置location的规则 1. 精确匹配主要为了匹配首页 2. Location \^\~ location \~\* 进行指定内容匹配 3. Location / 主要为了做反向代理 把动态请求转发给后端服务器 Rewrite: Permanent 永久重定向 Redirect 临时重定向 Break 跳转 不会继续匹配 不改变URI Last 继续向下匹配 nginx只能循环十次 超过10次会报500

相关推荐
七夜zippoe10 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
Fcy64811 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满11 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠11 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Harvey90312 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技13 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀13 小时前
Linux环境变量
linux·运维·服务器
zzzsde13 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器
聆风吟º15 小时前
CANN开源项目实战指南:使用oam-tools构建自动化故障诊断与运维可观测性体系
运维·开源·自动化·cann
NPE~15 小时前
自动化工具Drissonpage 保姆级教程(含xpath语法)
运维·后端·爬虫·自动化·网络爬虫·xpath·浏览器自动化