Nginx的Location匹配规则

转自公众号:运维小工
http://mp.weixin.qq.com/s?__biz=MzkxOTQyNjE5Nw==&mid=2247484115&idx=1&sn=e99120ec13f57b99f227dacb905a0fa4

Nginx处理请求的过程

/ 01

当一条HTTP请求过来时,nginx根据配置监听的端口号以及server_name配置的域名找到对应的server块,在server块中,通过对请求中的URI进行匹配来确定需要执行的location块。

——————

Nginx的location块匹配

/ 02

Nginx 的location匹配可以分为两大类:前缀字符串匹配和正则表达式匹配。

location配置的语法:

Syntax: location [=|~|~*|^] uri {…}

            location  @name{…}

Default:

Context: server, location

=:前缀字符串匹配,表示精确匹配,URI匹配即执行对应的location块

~:正则匹配,区分大小写的正则匹配

~*:正则匹配,不区分大小写的正则匹配

^~:前缀字符串匹配,若匹配的最长前缀字符串存在这个修饰符,则不再进行后续的匹配

@:前缀@定义了一个命名位置。这样的位置不用于常规http请求处理,而是用于请求重定向。只能被Nginx内部配置指令所访问。

——————

Nginx的location匹配的顺序

/ 03

location匹配过程中先进行前缀字符串匹配,后进行正则匹配。匹配顺序如下图:

nginx首先查找前缀字符串匹配,若精确匹配成功,则停止匹配,执行对应的location块;若失败则找出匹配中最长的前缀字符串。若最长前缀前存在修饰符^~, 则匹配停止,否则按照出现的顺序进行正则匹配。正则匹配成功即停止,如果正则匹配失败,则使用已经找出的最长的前缀字符串匹配,执行对应的location块。

Nginx的location匹配测试:

Nginx的配置文件如下:

[root@www vhosts]# cat loc_web.conf server{        listen 18081;                location = /{                return 200 A;        }        location / {                return 200 B;        }        location /testfile/ {                return 200 C;        }        location ^~/static/{                return 200 D;        }        location ~*\\\\.(gif|jpg|jpeg)$ {                return 200 E;        }}[root@www vhosts]#

http://127.0.0.1:18081/,返回值为A

http://127.0.0.1:18081/index.html,返回值为 B

http://127.0.0.1:18081/testfile/web.html,返回值为C

http://127.0.0.1:18081/static/test.gif,返回值为D

http://127.0.0.1:18081/testfile/test.gif,返回值为E

——————

参考文章

/ 04

[1] 深入理解Nginx Location匹配规则

[2] 关于Nginx 的 location 匹配规则

[3] Nginx基础之location匹配规则实践篇

文章作者:王振杰

封面设计:Lina   

原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/32791.html

(0)
EBCloud's avatarEBCloud
上一篇 2024年4月2日 下午3:28
下一篇 2024年4月2日 下午3:28

相关推荐

  • 如何优化网页的SEO代码?

    SEO,作为搜索引擎优化的缩写,是指通过优化网页代码和内容,提高网站在搜索引擎中的排名,从而获得更多的流量和曝光度。对于网站来说,SEO是一项非常重要的工作。那么如何才能编写出有效…

    行业资讯 2024年3月28日
    0
  • 网站被攻击如何报警,网站被攻击如何解决

    网站被攻击的原因分析 当网站受到攻击时,我们往往会感到恐慌和无助。但面对这样的情况,我们不能坐以待毙,必须采取有效措施解决问题。以下是您的网站遭受攻击时的处理步骤和预防措施,让我们…

    行业资讯 2024年5月17日
    0
  • 防盾2000,防御盾的

    首先我们要明确的是,高防盾机的价格根据品牌的不同而有所不同。知名品牌通常具有较高的认知度和可信度,因此其产品的价格也会相应较高。一些小众或新兴品牌的价格可能更具竞争力。 2、功能决…

    行业资讯 2024年4月17日
    0
  • 如何注册一个tech域名?工信部规定的流程是什么?

    你是否想过如何注册一个tech域名?工信部规定的流程是什么?或许你已经听说过这个问题,但是你是否真正了解其中的奥秘?域名作为网络世界的门牌号,它的重要性不言而喻。但是,对于普通用户…

    行业资讯 2024年4月7日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注