nginx location 匹配规则

语法: location[=|~|~*|^~|@]/uri/{...}

配置块: server

location会尝试根据用户请求中的URI来匹配上面的/uri表达式,如果可以匹配,就选择 location{}块中的配置来处理用户请求。

  • = 表示把uri作为字符串做完全匹配 例如:
location =/ {
# 只有当用户的请求是 / 时,才会匹配
}
  • ~ 表示匹配uri是大小写敏感
  • ~* 表示匹配uri时忽略大小写
  • ^~ 表示匹配uri时只需要其前半部分匹配即可 例如:
location ^~ images {
# 以 images 开始的请求都会匹配
}
  • @ 表示仅用于Nginx服务内部请求之间的重定向,带有@的location不直接处理用户请求
  • 正则表达式 例如:
location ~* \.(gif|jpg|jpeg)$ {
# 匹配以 .gif .jpg .jpeg 结尾的请求
}
  • / 匹配所有请求 (一般放在最后) 例如:
location / {
# 匹配所有请求
}

注意,location是有顺序的,当一个请求有可能匹配多个location时,实际上这个请求会被第一个location处理。

在以上各种匹配方式中,都只能表达为“如果匹配...则...”。如果需要表达“如果不匹配... 则...”,就很难直接做到。有一种解决方法是在最后一个location中使用/作为参数,它会匹配所有的HTTP请求,这样就可以表示如果不能匹配前面的所有location,则由“/”这个location处理。

参考资料

《深入理解Nginx模块开发与架构解析第2版》

转载于:https://my.oschina.net/u/3523423/blog/1526004

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值