`
zzc1684
  • 浏览: 1214261 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

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

阅读更多

 

 

location

语法:location [=|~|~*|^~] /uri/ { … }
默认:否

上下文:server

这个指令随URL不同而接受不同的结构。你可以配置使用常规字符串和正则表达式。如果使用正则表达式,你必须使用 ~* 前缀选择不区分大小写的匹配或者 ~ 选择区分大小写的匹配。

确定 哪个location 指令匹配一个特定指令,常规字符串第一个测试。常规字符串匹配请求的开始部分并且区分大小写,最明确的匹配将会被使用(查看下文明白 nginx 怎么确定它)。然后正则表达式按照配置文件里的顺序测试。找到第一个比配的正则表达式将停止搜索。如果没有找到匹配的正则表达式,使用常规字符串的结果。

有两个方法修改这个行为。第一个方法是使用 “=”前缀,将只执行严格匹配。如果这个查询匹配,那么将停止搜索并立即处理这个请求。例子:如果经常发生”/”请求,那么使用 “location = /” 将加速处理这个请求。

第二个是使用 ^~ 前缀。如果把这个前缀用于一个常规字符串那么告诉nginx 如果路径匹配那么不测试正则表达式。

而且它重要在于 NGINX 做比较没有 URL 编码,所以如果你有一个 URL 链接’/images/%20/test’ , 那么使用 “images/ /test” 限定location。

总结,指令按下列顺序被接受:
1. = 前缀的指令严格匹配这个查询。如果找到,停止搜索。
2. 剩下的常规字符串,长的在前。如果这个匹配使用 ^~ 前缀,搜索停止。
3. 正则表达式,按配置文件里的顺序。
4. 如果第三步产生匹配,则使用这个结果。否则使用第二步的匹配结果。

例子:

location = / {
# 只匹配 / 查询。
[ configuration A ]
}

location / {
# 匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配。
[ configuration B ]
}

location ^~ /images/ {
# 匹配任何已 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
[ configuration C ]
}

location ~* \.(gif|jpg|jpeg)$ {
# 匹配任何已 gif、jpg 或 jpeg 结尾的请求。然而所有 /images/ 目录的请求将使用 Configuration C。
[ configuration D ]
}

例子请求:

/ -> configuration A

/documents/document.html -> configuration B

/images/1.gif -> configuration C

/documents/1.jpg -> configuration D

注意:按任意顺序定义这4个配置结果将仍然一样。

分享到:
评论

相关推荐

    Nginx关于location的匹配规则详解.docx

    - **正则表达式匹配**:使用`~`(大小写敏感)或`~*`(大小写不敏感),如`location ~ ^/path/ {}`,匹配符合正则表达式的URL。 2. **匹配顺序** - **优先级**:精确匹配>`=`, 正则表达式>`^~`, 前缀匹配。当有多...

    Nginx正则表达式相关的参数和规则介绍

    Nginx配置中Location的语法规则 location [ = | ~ | ~* | ^~ | !~ | !~* ] /uri/{ … } = 表示精确匹配 ~ 表示区分大小写正则匹配 ~* 表示不区分大小写正则匹配 ^~ 表示URI以某个常规字符串开头 !~ 表示区分大...

    nginx配置location时容易出现的误区

    - **正则 location** 的匹配规则是按照配置文件中的先后顺序来进行匹配的,一旦某个正则表达式匹配成功,后续的正则表达式将不再被检查。 **示例:** 假设配置了以下两个 `location` 块: ```nginx location /test ...

    pcre-8.38.tar.zip

    5. **正则表达式在Nginx配置中的应用**:Nginx的location指令允许使用正则表达式进行URL匹配。例如,`location ~ \.php$ { ... }`将匹配所有以.php结尾的请求,并将其传递给PHP处理器。 6. **调试和性能**:正则...

    Nginx服务器的location指令匹配规则详解

    nginx location语法 基本语法:location [=|~|~*|^~] /uri/ { … } = 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。 ~ 为区分大小写匹配(可用正则表达式) ~* 为不区分大小写匹配(可用正则表达式...

    详解Nginx之Location配置(Location匹配顺序)

    location有”定位”的意思, 主要是根据Uri来进行...^~:如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。 2.location如何发挥作用 3.简单实例证明上述图片结论 不带正则表达式的

    详解nginx配置location总结及rewrite规则写法

    在Nginx的配置文件中,location指令用于定义不同的URI请求应该如何被处理,而rewrite规则用于实现URL的重写,这通常用于URL的优化、实现伪静态等功能。 location指令是Nginx配置中非常核心的部分,它可以基于请求的...

    nginx的各项详细配置-超多注释

    - **rewrite**: URL重写规则,使用正则表达式进行匹配和替换。 - **try_files**: 按顺序查找文件,找到即返回,未找到则按顺序执行下一条指令。 ### 3. Nginx反向代理 通过`proxy_pass`指令,Nginx可以作为反向...

    Nginx中Location从零开始的配置教程

    Nginx location 配置语法  1. location [ = | ~ | ~* | ^~ ] uri { ... }  2. location @name { ... }  location 配置可以有两种配置方法 1.前缀 + uri(字符串/正则表达式) 2.@ + name 前缀含义  = :...

    CentOS Linux安装配置nginx以及样例

    5. 安装pcre-devel,这是Nginx配置正则表达式所必需的。 6. 如果遇到“C compiler cc is not found”错误,安装gcc和必要的开发库。 7. 安装openssl库,以支持SSL/TLS功能。 8. 运行`./configure`指定安装路径,然后...

    让Nginx支持Rewrite功能,所依赖的PCRE包:pcre_8.35

    这个库为Nginx提供了对Perl语法的正则表达式的支持,使得我们可以使用复杂的规则来重定向或修改请求的URL。 PCRE库是由Vernon Kester设计并维护的,其主要目标是与Perl语言中的正则表达式兼容。这意味着在Nginx配置...

    nginx location配置详细解释.pdf

    ### Nginx Location配置详细解析 #### 一、引言 Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 Linux 环境下有着非常好的性能表现。在 Nginx 的配置文件中,`location` ...

    nginx配置文件

    6. **location**:使用正则表达式或精确匹配,根据URI路由请求。 7. **proxy_pass**:在反向代理配置中,指定后端服务器的地址。 8. **access_log**:设置访问日志文件和日志格式。 **四、配置优化** 1. **负载...

    一文弄懂Nginx的location匹配的实现

    从匹配过程我们可以得到两点启示:一是使用正则表达式的location在配置文件中的顺序很重要,因为一旦匹配成功,后续的正则表达式将不再被检查;二是使用精确匹配可以大幅提升匹配效率,尤其对于经常访问的静态资源...

    软件 nginx-1.12.2.tar、pcre-8.37.tar

    PCRE是Perl兼容的正则表达式库,它实现了Perl语言中的正则表达式语法。在Nginx中,PCRE主要用于配置文件中的URL匹配规则,实现动态路由、URL重写等功能。以下是一些关键概念: 1. **正则表达式**:一种模式匹配工具...

    linux下安装nginx所需要的包

    在编译Nginx之前,需要确保系统已安装了必要的依赖库,如pcre(Perl兼容正则表达式库)、zlib(数据压缩库)和openssl(用于加密通信)。可以通过以下命令安装: ``` sudo apt-get install libpcre3-dev zlib1g-...

    nginx设置rewrite规则

    总的来说,配置Nginx的rewrite规则是提升Web应用性能和用户体验的关键步骤,需要理解正则表达式和Nginx的配置语法,才能正确有效地实现URL重写。在LNMP环境中,根据实际的部署类型选择合适的配置文件,并确保规则的...

    Nginx Location 指令简明指南

    3. 对于使用了正则表达式的location块,Nginx会按顺序检查,找到第一个匹配的规则即停止匹配过程。 4. 如果正则表达式匹配到了结果,则使用正则表达式的结果;如果没有找到匹配的正则表达式,那么会退回到前面找到的...

Global site tag (gtag.js) - Google Analytics