. #匹配除换行符以外的所有字符
* #任意一个或多个字符
\ #一般用来转义
! #表示不,False
^ #匹配字符串起始位
$ #匹配字符串结束位
~ #区分大小写匹配
~* #不区分大小写匹配
= #普通字符精确匹配
@ #'@'为一个location命名,但是这个location不能被外界访问,只用于nginx内部子请求,例如: error_page, try_files
*-f和!-f 判断是否是文件
*-d和!-d 判断是否是目录
*-e和!-e 判断文件或目录是否存在
*-x和!-x 判断是否有执行权限
- 优先级
-
'='
等号类型的优先级最高;匹配成功后,不在继续匹配
location = / {
# 仅仅匹配请求/;如果匹配成功,则停止匹配查找,采用这一条。
[ configuration A ]
}
-
'^~'
类型的优先级其次;匹配成功后,不在继续匹配
location ^~ /images/ {
# 匹配所有以 /images/ 开头的表达式;如果匹配成功,则停止匹配查找,采用这一条。
[ configuration B ]
}
-
'~/~*'
类型的优先级其次;如果匹配成功,继续匹配
location ~* \.(gif|jpg|jpeg)$ {
# 匹配所有以 gif,jpg或jpeg 结尾的请求;
#如果所有请求 /images/ 下的图片会被 config B 处理,因为 ^~ 到达不了这一条正则;如果匹配成功多个,则使用正则表达式最长的那个。
[ configuration C ]
}
-
'/'
类型的优先级最低;常规字符串匹配类型,按前缀匹配
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/
}
网友评论