https://zhuanlan.zhihu.com/p/137042956
#默认
location / {
不加任何规则时,默认是大小写敏感,前缀匹配,相当于加了~与^~
}
location /abc/ {
}
location /qrwx {
}
操作符优先级:= ^~ ~ ~*
= 精准匹配 内容要同表达式完全一致才匹配成功
匹配优先级最高。一旦匹配成功,则不再查找其他匹配项
^~ 带参前缀匹配
类型表达式。一旦匹配成功,则不再查找其他匹配项。
~ 正则匹配(区分大小写)
~* 正则匹配(不区分大小写)
/xxx 普通前缀匹配,优先级低于带参数前缀匹配。
/ 任何没有匹配成功的,都会匹配这里处理
! 取反
#优先级1,精确匹配,根路径
location =/ {
location = /abc/ {
#优先级2,以某个字符串开头,以av开头的,优先匹配这里,区分大小写
location ^~ /av {
#优先级3,区分大小写的正则匹配,匹配/media*****路径
location ~ /media {
alias /data/static/;
}
#优先级4 ,不区分大小写的正则匹配,所有的****.jpg|gif|png 都走这里
location ~* .*\.(jpg|gif|png|js|css)$ {
location ~ \.(gif|jpg|png|js|css)$ { 区分大小写的正则匹配,若匹配成功,停止往下搜索正则,采用这一条
#优先7,通用匹配 最后收尾
location / {
location !~ \.xhtml$ {区分大小写,匹配不已.xhtml结尾的
location !~* \.xhtml$ {不区分大小写,匹配不已.xhtml结尾的
location /doc {
#访问 /doc 时,服务器首先去找doc文件,找不到则将doc当做目录,重定向到 /doc/,在该目录下找默认文件
proxy_pass http://www.doc123.com
}
location /doc/ {
proxy_pass http://www.doc456.com
}
location /index/ {
error_page 404 @index_error;
}
location @index_error {
.....
}
#以 /index/ 开头的请求,如果链接的状态为 404。则会匹配到 @index_error 这条规则上