Nginx配置location块

本文详细介绍了Nginx中location的语法结构,包括标准uri和正则uri的匹配方式。讲解了"=","~","~*","^~"四种匹配修饰符的用途,特别是"^~"如何处理URL编码的uri。通过理解这些配置,可以更精确地控制Nginx如何处理HTTP请求。
摘要由CSDN通过智能技术生成

在Nginx官方文档中定义的location的语法结构为

location [=|~|~*|^~] uri {...}

其中uri变量是待匹配的请求字符串,可以是不含正则表达的字符串,如 /api/server.php ---标准uri

也可以是包含正则表达式的字符串, 如 \.php$ (表示以.php结尾的URL) --- 正则uri

方括号中的部分属于可选项,用来改变请求字符串与uri的匹配方式,在不添加时,Nginx服务器首先在server块的多个location块中搜索是否有标准uri和请求字符串匹配,如果有多个可以匹配,就记录匹配度最高的一个。然后,服务器再用location中正则uri和请求字符串匹配,当第一个uri匹配成功,结束搜索,并使用这个location块处理此请求;如果正则匹配全部失败,就使用刚才记录的匹配度最高的的location块处理此请求。

“=” ,用于标准uri前,要求请求字符串与uri严格匹配。匹配成功就停止继续向下搜索并立即处理此请求

“~” , 用于表示uri包含正则表达式且区分大小写

“~*”, 用于表示uri包含正则表达式且不区分大小写

“^~”, 用于标准uri前,要求Nginx服务器找到表示uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配。

在浏览器传送URI时对一部分字符进行URL编码,比如空格被编码为“%20”,问号被编码为“%3f”等。 “^~“有一个特点, 对uri中的这些符号将会进行编码处理。 比如,location收到的URI为  /html/%20/data , 当Nginx服务器搜索到配置为 “^~/html//data”的location时可以匹配成功。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值