Nginx location配置解析
来源:互联网 发布:网站代备案淘宝 编辑:程序博客网 时间:2024/06/06 04:02
Nginx location配置解析
1.语法规则
location [=|~|~*|^~]/uri/{...}
- = 表示精确匹配,这个优先级最高的
- ^~ 表示uri以某个常规字符串开头,理解为匹配 url路径即可,Nginx不对url做编码,因此请求为/static/80%/aa,可以被规则^~/static/ /aa(注意中间是空格)
- ~ 表示区分大小写的正则匹配、
- ~* 表示不区分大小写的正则匹配
- !~ 表示区分大小写不正则匹配
- !~*表示不区分大小写不正则匹配
- / 表示通用匹配,任何请求都会匹配到,默认匹配
其中常用正则 - . : 匹配除换行符以外的任意字符
- ? : 重复0次或1次
- + : 重复1次或更多次
- * : 重复0次或更多次
- \d :匹配数字
- ^ : 匹配字符串的开始
- $ : 匹配字符串的介绍
- {n} : 重复n次
- {n,} : 重复n次或更多次
- [c] : 匹配单个字符c
- [a-z] : 匹配a-z小写字母的任意一个
2.语法优先级别
优先级:= > ^~
首先匹配 = ,其次匹配 ^~,其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则请求。
3.定义匹配规则
(注:需要安装echo模块才行,才能使用echo)
location / { echo '/';}
location = /{ echo '=/';}
location = /nginx{ echo '=/nginx';}
location ~ \.(gif|jpg|png|js|css) { echo 'name-gif/jpg/png';}
location ~* \.png$ { echo 'all-png';}
location ^~ /static/ { echo 'static';}
4.访问测试
- 访问http://a.chen.com/,匹配到“=/”
#curl http://a.chen.com/=/
- 访问http://a.chen.com/nginx,完全匹配到“=/nginx”
#curl http://a.chen.com/nginx=/nginx
- 访问http://a.chen.com/xxx/xxx.PNG,完全匹配到“~* .png$,因为大写。所以没有匹配到‘~.(gif|jpg|png|js|css)’,因为 ~ 区分大小写 ”
#curl http://a.chen.com/xxx/1.PNGall-png
- 访问http://a.chen.com/static/xxx.PNG,匹配到“ ^~ /static/ 因为有 ^~ 停止往下匹配了”
#curl http://a.chen.com/static/1.PNGstatic
5.常用的静态资源匹配规则
5.1.样式和JS
location ~* .*\.(js|css)?${ expires 7d;//7天过期 access_log off;//不保存日志}
5.5.图片图标等
location ~* .*\.(jpg|png|gif|jpeg|bmp|ico)?${ expires 7d;//7天过期 access_log off;//不保存日志}
5.6.资源数据
location ~* .*\.(zip|rar|exe|msi|iso|gho|mp3|mp4|rmvb|wma|wmv|rm)?${ deny all;//禁止这些文件的下载}
阅读全文
1 0
- Nginx location配置解析
- nginx location配置及解析过程
- [nginx源码分析]配置解析(location作用域)
- Nginx location 配置
- Nginx Location配置总结
- Nginx的location配置
- Nginx Location配置总结
- nginx location 配置选项
- Nginx Location配置总结
- Nginx Location配置总结
- Nginx Location配置总结
- Nginx Location配置总结
- Nginx Location配置总结
- Nginx Location配置总结
- Nginx Location配置总结
- nginx location 配置
- Nginx Location配置总结
- Nginx Location配置总结
- HashMap和ConcurrentHashMap的区别,HashMap的底层源码。
- 【贪心】活动选择
- MSP430F149串口收发程序详解
- 如何push一个docker镜像到DockerHub上
- 微信小程序基于node.js的websocket服务器搭建和SSL证书申请、配置全家桶
- Nginx location配置解析
- 171031-自学指针参数,引用参数【连续第八天】
- TreeMap、HashMap、LindedHashMap的区别。
- 【Android 数据库框架总结,总有一个适合你!】
- poj2546—Circular Area(两圆相交面积)
- python使用import导入文件夹中的文件
- (附) Hyperledger Fabric在CentOS 7.2 64位系统开发环境搭建——docker无法使用 解决方法
- 【MySQL】触发器入门
- JNDI常见配置方式