Nginx 从入门到放弃
Posted welisit
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 从入门到放弃相关的知识,希望对你有一定的参考价值。
location是在server中匹配本地的目录,根据不同的url定位到不同的内容上。
location [=|~|~*|^~] pattern
# 中括号中不写任何参数表示一般匹配,也可以写参数
# location = patt [精准匹配]
# location patt [一般匹配]
# location ~ patt [正则匹配]
# location ~* [正则匹配忽略大小写]
# location ^~ []
如何发挥作用呢?
首先查看是否有精准匹配,如果有,则停止匹配过程。
location = patt
config A
如果 $uri == patt, 匹配成功,使用 configA
location = /
root /var/www/html
index index.htm
location /
root /data/html
index index.html
上面配置如果访问http://xxx.com/
定位流程是
-
精确匹配中 “/” , 得到 index 页为 index.htm
-
再次访问 /index.htm,此次内部转跳uri已经是“/index.htm”,所以只能匹配中一般匹配
-
在/data/html中查找文件,访问路径是/data/html/index.htm
正则匹配
如果一般匹配能够匹配上,nginx将继续查找是否有正则匹配能够匹配上,如果有就匹配正则匹配。正则匹配是比一般匹配优先的。
总结:location的命中过程
-
先判断精准命中,如果命中,立即返回结果并结束匹配过程
-
判断普通命中,如果有多个命中,记录下来最长的命中结果,但并不结束
-
继续判断正则表达式的匹配结果,按配置里的正则表达式顺序为准,由上到下开始匹配,一旦匹配成功1个,立即返回结果,结束匹配过程。
普通命中,顺序无所谓,是因为按命中的长短来确定的。
以上是关于Nginx 从入门到放弃的主要内容,如果未能解决你的问题,请参考以下文章