博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx location配置解析
阅读量:6878 次
发布时间:2019-06-26

本文共 1362 字,大约阅读时间需要 4 分钟。

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.访问测试

  • 访问
    #curl http://a.chen.com/=/复制代码
  • 访问
    #curl http://a.chen.com/nginx=/nginx复制代码
  • 访问 .png$,因为大写。所以没有匹配到‘~.(gif|jpg|png|js|css)’,因为 ~ 区分大小写 ”
    #curl http://a.chen.com/xxx/1.PNGall-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;//禁止这些文件的下载}复制代码

转载地址:http://jfgfl.baihongyu.com/

你可能感兴趣的文章
wpgcms---详情页面数据怎么渲染
查看>>
oracle数据库存储过程中NO_DATA_FOUND不起作用解决
查看>>
node之版本号升级和管理
查看>>
Java与设计模式-策略模式
查看>>
tengine 的优化
查看>>
C++编译器与链接器工作原理
查看>>
软件缺陷分析-软件测试之犯罪心理学
查看>>
Python实战之自己主动化评论
查看>>
spring boot下使用logback或log4j生成符合Logstash标准的JSON格式
查看>>
iOS面试题合集(77道)
查看>>
hadoop安装及配置入门篇
查看>>
[原] KVM 虚拟化原理探究(2)— QEMU启动过程
查看>>
使用Java程序调用MatLab
查看>>
什么是C++虚函数、虚函数的作用和使用方法
查看>>
Atitit.cto 与技术总监的区别
查看>>
关于【自证清白】
查看>>
手把手教你crontab排障
查看>>
订单编号
查看>>
纪念我曾经的 JAVA 姿势--转
查看>>
js 如何清除setinterval
查看>>