Nginx Location 指令语法解析

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx Location 指令语法解析相关的知识,希望对你有一定的参考价值。

参考技术A nginx location 是使用 nginx 的过程中必须要掌握的技能,无论是在 server blocks 还是其他 location blocks 中都会用到,这篇文章简单介绍了当请求来临时 location 指令是如何处理客户端 URI 请求的.

Nginx 将配置按照层级关系,用块状形式进行配置,每当一个请求来临时,nginx 服务器就会处理这个请求到底会映射到哪个块配置.在 Nginx 的配置文件中,两种主要的块配置是:

如下就是常用的 location 配置的语法格式,其中 modifier 是可选的, location_match 就是制定 URI 应该去往哪个配置的关键.

Regular expressions(RE) 或者字面量都可以用来定义 modifier ,如果 location 配置中制定了modifier,可能会改变 nginx匹配 location的方式,如下介绍几种最重要的modifier:

对于每个请求来说,nginx 会选择最匹配的一个 location 来处理这个请求,nginx 其实就是通过对比这些 location 规则来选择一个 location,对比的顺序可以总结为:

如下是一些 location 配置的例子,用来详细描述上面所说的处理顺序,你也可以按照具体实际情况来修改这些例子.

如何防止图片 盗链 :

在可写权限的目录禁止脚本:

更多 nginx location 指令的信息,可以参见官网: Nginx

[Nginx]location 指令说明

location 指令说明

该指令用于匹配 URL。
语法如下:


1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配
成功,就停止继续向下搜索并立即处理该请求。
2、~:用于表示 uri 包含正则表达式,并且区分大小写。
3、~* :用于表示 uri 包含正则表达式,并且不区分大小写。
4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。

注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

以上是关于Nginx Location 指令语法解析的主要内容,如果未能解决你的问题,请参考以下文章

nginx 指令之 try_files

Nginx的try_files指令和命名location使用实例

详细解析 nginx uri 如何匹配 location 规则

Linux nginx 配置 location 语法 正则表达式

nginx配置location [=|~|~*|^~] /uri/ { … }用法

nginx location