nginx重新整理——————http请求的11个阶段中的find_config[十三]
2023-09-14 09:01:08 时间
前言
简单介绍一下find_config 与 preaccess 阶段。
正文
find_config 很大一部分工作是进行location的匹配。
来一张图看下location指令和merge_slashes:
前缀字符串:
-
常规 比如/http,表示前缀是http,比如 http/aaa 这种。
-
=:精确匹配,表示一定要和这个链接一模一样。
-
^~: 匹配上后则不再进行正则表达式匹配
正则表达式:
~: 大小写敏感的正则匹配
~*: 忽略大小写的正则匹配
合并连续的符号:
merge_slashes
用于内部跳转的命名location:
@ 这种。
下面给一些例子哈:
location的匹配规则:
然后来实验一下例子哈:
location ~ /Test1/$ {
return 200 'first regular expressions match!\n';
}
location ~* /Test1/(\w+)$ {
return 200 'longest regular expressions match!\n';
}
location ^~ /Test1/ {
return 200 'stop regular expressions match!\n';
}
location /Test1/Test2 {
return 200 'longest prefix string match!\n';
}
location /Test1 {
return 200 'prefix string match!\n';
}
location = /Test1 {
return 200 'exact match!\n';
}
实验一:
这里Test1 那么走的是精确匹配。
实验二:
这个是完全匹配,所以选择了3,这里有人就问了,这里~ /Test1/$ 不也是完全匹配吗?因为加了^~ 所以正则表达被拒了。
实验三:
可以看到其实这里面3个都匹配上了,但是因为匹配到了^~ /Test1/,字符最长,且加了^~所以选这个。
实验四:
因为/Test1/Test2完全匹配了,本来应该选择这个的,但是有正则匹配了,所以选正则。
优先级规则:
-
精确匹配
-
匹配字符串最长的,如果匹配字符串最长的没有加~^,那么就会查看正则表达。
-
然后是有多个正则表达,那么选正则表达第一个。
结
下一节介绍preaccess.
相关文章
- 重识Nginx - 02 手把手教你编译适合自己的nginx 1.22.0
- Tomcat面试题+http面试题+Nginx面试题+常见面试题
- Nginx 配置中nginx和alias的区别分析
- Apache、Nginx、IIS防盗链方法「建议收藏」
- HTTP默认端口_http协议使用的端口号
- 重识Nginx - 10 ngx_http_log_module日志模块 & GoAccess日志分析
- 重识Nginx - 11 使用ngx_http_proxy_module的proxy_cache搭建一个具备缓存功能的反向代理服务
- 重识Nginx - 14 Nginx 多进程结构
- Linux开发_CentOS7.4服务器安装NFS、NGINX服务器,ffmpeg、Qt环境
- 给 Nginx 站点套上一层 Cloudflare
- Nginx 查看接口请求内容
- 保姆级Nginx日志配置文件总结
- 【Flutter】HTTP 网络操作 ( 引入 http 插件 | 测试网站 | Get 请求 | Post 请求 | 将响应结果转为 Dart 对象 | Future 异步调用 )
- scrapy/nginx 服务带有http 验证,怎样使用curl 请求详解程序员
- nginx静态页面镜像详解程序员
- 状态Linux查看Nginx服务状态的简单方法(linux查看nginx)
- 让Linux(Debian/Ubuntu、RHEL/CentOS)的nginx(Web服务器)支持PHP
- 服务器管理Linux中的HTTP服务器(linux中http)
- 日志文件Linux如何快速删除Nginx日志文件(linux删除nginx)
- Linux下抓取HTTP包的技术实现(linux抓http包)
- 如何测试Nginx的高性能并发
- 深入浅出:Linux 架构学习 HTTP 协议(http协议linux)
- Nginx HTTP负载均衡和反向代理配置
- Linux拦截HTTP的安全防护(Linux拦截http)
- Linux探索Nginx安装路径(linux查看nginx安装目录)
- nginx秒杀科技Redis与Nginx结合的方案(秒杀技术方案redis和)
- 借助Redis和Nginx进行更有效的负载均衡(redis配合nginx)
- nginx提示:500InternalServerError错误的解决方法
- Nginx平滑升级的详细操作方法
- 在网关中使用Nginx配置HTTP透明代理案例
- nginx中使用nginx-http-concat模块合并静态资源文件
- nginx禁止访问.git文件的设置教程
- Nginx反向代理websocket配置实例