Linux下Nginx服务正则表达式

  • 正则符号及匹配
.          #匹配除换行符以外的所有字符
*          #任意一个或多个字符
\          #一般用来转义
!          #表示不,False
^          #匹配字符串起始位
$          #匹配字符串结束位
~          #区分大小写匹配
~*         #不区分大小写匹配
=          #普通字符精确匹配
@          #'@'为一个location命名,但是这个location不能被外界访问,只用于nginx内部子请求,例如: error_page, try_files
  • 文件和目录匹配
*-f和!-f  判断是否是文件
*-d和!-d  判断是否是目录
*-e和!-e  判断文件或目录是否存在
*-x和!-x  判断是否有执行权限
  • 优先级
    1. '='等号类型的优先级最高;匹配成功后,不在继续匹配
      location = / {
      # 仅仅匹配请求/;如果匹配成功,则停止匹配查找,采用这一条。
      [ configuration A ]
    }
    
    1. '^~'类型的优先级其次;匹配成功后,不在继续匹配
    location ^~ /images/ {
      # 匹配所有以 /images/ 开头的表达式;如果匹配成功,则停止匹配查找,采用这一条。
      [ configuration B ]
    }
    
    1. '~/~*'类型的优先级其次;如果匹配成功,继续匹配
    location ~* \.(gif|jpg|jpeg)$ {
    # 匹配所有以 gif,jpg或jpeg 结尾的请求;
    #如果所有请求 /images/ 下的图片会被 config B 处理,因为 ^~ 到达不了这一条正则;如果匹配成功多个,则使用正则表达式最长的那个。
    [ configuration C ] 
    }
    
    1. '/'类型的优先级最低;常规字符串匹配类型,按前缀匹配
    location / {
      # 匹配所有以 / 开头的请求。
      # 如果有正则表达式可以匹配,则优先匹配正则表达式。但是如果有更长的同类型的正则表达式,则使用正则表达式最长的那个。
      [ configuration D ]
    }
    
  • 常用配置
#直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理
location = / {
    root html/www;
}
#静态文件处理,匹配开头关键字
location ^~ /ui_web/ {
    root html/ui_web;
}
#静态文件处理,一般处理图片,匹配后缀
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
    root html/image;
}
#动态处理,反向代理
location /ui_android {
    proxy_pass http://192.168.1.253:8080/
}

你可能感兴趣的:(Linux下Nginx服务正则表达式)