【运维知识进阶篇】Nginx Location语法优先级详解

简介: 【运维知识进阶篇】Nginx Location语法优先级详解

使用Nginx Location可以控制访问网站的路径,但一个server可以有多个location配置,多个location的优先级又该如何区分,本篇文章就给大家介绍下。

Location语法优先级

匹配符 匹配规则 优先级
= 精准匹配 1
^~ 以某个字符串开头 2
~ 区分大小写的正则匹配 3
~* 不区分大小写的正则匹配 4
/ 通用匹配,任何请求都会匹配到 5

配置网站验证优先级

1. [root@Web01 ~]# cat /etc/nginx/conf.d/test.conf
2. server {
3.     listen 80;
4.     server_name test.koten.com;
5. 
6. location = / {
7. default_type text/html;
8. return 200 "location = /";
9.     }
10. 
11. location ^~ / {
12. default_type text/html;
13. return 200 "location ^~ /";
14.     }
15. 
16. location ~ / {
17. default_type text/html;
18. return 200 "location ~ /";
19.     }
20. 
21. location ~* / {
22. default_type text/html;
23. return 200 "location ~* /";
24.     }
25. 
26. }

测试Location效果

精准匹配优先级最高

注释掉=,加上/

注释掉^~

注释掉~/

注释掉~*/,只剩/,/优先级最低

Location应用场景

1. # 通用匹配,任何请求都会匹配到
2. location / {
3.     ...
4. }
5. 
6. # 严格区分大小写,匹配以.php结尾的都走这个location
7. location ~ \.php$ {
8.     ...
9. }
10. 
11. # 严格区分大小写,匹配以.jsp结尾的都走这个location
12. location ~ \.jsp$ {
13.     ...
14. }
15. 
16. # 不区分大小写匹配,只要用户访问.jpg,gif,png,js,css 都走这条location
17. location ~* .*\.(jpg|gif|png|js|css)$ {
18.     ...
19. }
20. 
21. location ~* \.(jpg|gif|png|js|css)$ {
22.     ...
23. }
24. 
25. # 不区分大小写匹配
26. location ~* "\.(sql|bak|tgz|tar.gz|.git)$" {
27.     ...
28. }
目录
相关文章
|
2月前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
4月前
|
负载均衡 应用服务中间件 API
Nginx:location配置模块的用法(一)
Nginx:location配置模块的用法(一)
525 2
|
5月前
|
应用服务中间件 nginx
Nginx Location 深入剖析及动静分离简易配置
Nginx Location 深入剖析及动静分离简易配置
76 3
|
2月前
|
存储 缓存 前端开发
理清 nginx 中的 location 配置
理清 nginx 中的 location 配置
|
2月前
|
应用服务中间件 nginx
nginx location指令详解
nginx location指令详解
|
4月前
|
应用服务中间件 网络安全 nginx
运维专题.Docker+Nginx服务器的SSL证书安装
运维专题.Docker+Nginx服务器的SSL证书安装
165 3
|
4月前
|
缓存 前端开发 应用服务中间件
Nginx:location配置模块的用法(二)
Nginx:location配置模块的用法(二)
207 2
|
4月前
|
缓存 运维 应用服务中间件
运维系列.Nginx配置中的高级指令和流程控制
运维系列.Nginx配置中的高级指令和流程控制
117 1
|
4月前
|
运维 算法 应用服务中间件
运维系列.Nginx中使用HTTP压缩功能(一)
运维系列.Nginx中使用HTTP压缩功能(一)
75 1
|
4月前
|
运维 安全 应用服务中间件
运维系列.Nginx:自定义错误页面(一)
运维系列.Nginx:自定义错误页面(一)
511 1