根据预先定义的URL匹配规则来吸收用户发送的要求,

根据匹配结果,将要求转发到后台做事器、

造孽的要求直接谢绝并返回403、404、500缺点处理等。

php域名截取5分钟搞懂nginx的location匹配规矩 AJAX

location指令语法

location [=|~|~|^~|@] /uri/ { … } 或 location @name { … }规则解释:

nginx匹配规则解释

多个location配置的匹配顺序:首先匹配:"="其次匹配:"^~"再匹配:文件location书写顺序若没有匹配到,末了把所有要求交给通配符("/")当有匹配成功时候,停滞匹配,按当前匹配规则处理要求

当nginx收到一个要求后,

会截取要求的URI部份,

去搜索所有location指令中定义的URI匹配模式。

在server模块中可以定义多个location指令来匹配不同的url要求,

多个不同location配置的URI匹配模式,

总体的匹配原则是:先匹配普通字符串模式,再匹配正则模式。

只识别URI部份

location配置实例解析

location = / { #规则A}location = /login { #规则B}location ^~ /static/ { #规则C}location ~ \.(gif|jpg|png|js|css)$ { #规则D}location ~ \.png$ { #规则E}location / { #规则F}

访问 http://localhost/

匹配规则 A

访问 http://localhost/login

匹配规则 B

访问http://localhost/register

匹配规则 F

访问 http://localhost/static/a.html

匹配规则 C

访问 http://localhost/a.gif, http://localhost/b.jpg

匹配规则 D和规则 E,

但是规则 D 顺序优先,

规则 E不起浸染

访问 http://localhost/static/c.png

知足条件的有规则C,D,E

但由于~^/static/优先级高,故匹配规则C

访问 http://localhost/a.PNG

匹配规则 E,而不会匹配规则 D,

由于规则 E 不区分大小写

访问 http://localhost/category/id/1111

终极匹配到规则 F,由于以上规则都不匹配

location常用场景实战

实际利用中,至少有三个匹配规则定义,如下:

1.第一个必选规则:直接匹配网站根

通过域名访问网站首页比较频繁,

利用这个会加速处理

这里是直接转发给后端运用做事器了,

也可以是一个静态首页

第一个必选规则location = / { proxy_pass http://locolhost/index}

第二个必选规则:处理静态文件要求

这是 nginx 作为 http 做事器的强项处理静态文件要求,

有两种配置模式,

目录匹配或后缀匹配,

任选其一或搭配利用

location ^~ /static/ { root /webroot/static/;}location ~ \.(gif|jpg|jpeg|png|css|js|ico)$ { root /webroot/res/;}

第三个规则:通用规则

用来转发动态要求到后端运用做事器非静态文件要求就默认是动态要求,自己根据实际把握

location / { proxy_pass http://localhost/}禁止访问.sh后缀的文件实例

server{......其他配置location ~.\.(sh)${return 405;}}

表示当访问 ".sh"的文件就会返回405缺点

php7进阶到架构师干系阅读

https://www.kancloud.cn/gofor/gofor

末了,欢迎大家留言补充,谈论~~~