精准匹配和普通匹配:
   server{
           location =/index.htm{                                       ////精准匹配
                   root /var/www/html                                  ////root 指向的目录 也可以写在外面,这样的意思就是 server 的 公共目录,location 可以单独指向一个目录。
                   index index.htm index.html
           }
 
           location =/{
                   root /var/www/html
                   index index.htm index.html
           }
          
           location /index.htm {                                         ////正则匹配
                   root /usr/local/src/nginx/html
                   index index.htm index.html
           }
   }
         如果你在浏览器输入一个 192.168.1.200 访问,服务器会把 url 看做 /,这样就会精准配准第二个 location,然后 url 就被服务器转换成 192.168.1.200/index.htm ,然后访问,再次匹配,又被精准定位第一个 location,然后访问,没有可以匹配的 location 就直接访问到 /var/www/html/index.htm 页面
       
         我的猜测是,如果没有指定具体访问页面,会默认当做访问的是 location 里的 index 第一个指定的页面。
 
正则匹配和普通匹配:
      server {
              location /{
                       root html;
                       index index.html index.htm;
             }
         
              location ~ image{
                      root /var/www/
                      index index.html;
             }
       }
             第二段 location 是正则匹配,当  url 中包含 image 就会指向 /var/www 目录【这就是动静分离、img 的 src 也会触动 location】。其实第一个 location 也会进行匹配,因为第一个 / 符合第一个 location 的规则,但是在跳转访问时会匹配到第二个 location 会覆盖前面第一个定位的地址。
 
 
注意:
      普通匹配是谁匹配的长就是谁的为主。
      正则匹配是按照从上往下顺序执行的。
 
总结:
       如果 root 指向的目录写在 server 里面,且 location 里面没有指定 root ,就会按照 server 全局里面的当做根目录。
      location 就是匹配 url,无论是域名还是 ip 都会看成一个 /。后面的路径就是我们写的规则来匹配。
 
      location 的命中过程是这样的:1、先判断精准命中,如果命中,立即返回结果并结束解析过程。2、判断普通命中,如果多个命中,记录下最长的命中结果(记录但不结束,最长的为准)。继续判断正则表达式的解析结果,按配置里的正则表达式的顺序为准,由上到下开始匹配,一旦匹配成功 1 个,立即返回结果,并结束解析过程。

关于 nginx 的配置的 location的更多相关文章

  1. Nginx下配置ThinkPHP的URL Rewrite模式和pathinfo模式支持

    前面有关于lnmp环境的搭建,在此就不在赘述.下面就简述thinkPHP如何在nginx下开启url_rewrite和pathinfo模式支持 主要有两个步骤: 一.更改php.ini将;cgi.fi ...

  2. nginx下配置laravel+rewrite重写

    server { listen ; server_name ha.d51v.cn; #access_log /data/wwwlogs/access_nginx.log combined; root ...

  3. Nginx 配置指令location 匹配符优先级和安全问题【转】

    Nginx配置指令location匹配符优先级和安全问题 使用nginx 很久了,它的性能高,稳定性表现也很好,得到了很多人的认可.特别是它的配置,有点像写程序一样,每行命令结尾一个";&q ...

  4. Nginx配置基础-location

    location表达式类型 ~ 表示执行一个正则匹配,区分大小写~* 表示执行一个正则匹配,不区分大小写^~ 表示普通字符匹配.使用前缀匹配.如果匹配成功,则不再匹配其他location.= 进行普通 ...

  5. Nginx正确配置Location

    文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 之前已经讲过Nginx的基本配置,本篇文章主要对Nginx中Location指令的作用进行介绍.本篇文章主要对 ...

  6. Nginx 核心配置-location的登录账户认证实战篇

    Nginx 核心配置-location的登录账户认证实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用ab命令模拟网站攻击 1>.安装httpd-tools工具 ...

  7. Nginx 核心配置-location的匹配案例实战篇

    Nginx 核心配置-location的匹配案例实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.location语法规则介绍 在没有使用正则表达式的时候,nginx会先在 ...

  8. 如何在Nginx下配置PHP程序环境

    1.nginx与PHP的关系 首先来看nginx与php的关系, FastCGI的关系(而不是像apache那样安装成nginx的模块) FastCGI的意思是, 快速的通用网关接口:CGI Comm ...

  9. 从零开始学 Java - CentOS 下 Nginx + Tomcat 配置负载均衡

    为什么现在有非常多的聪明人都在致力于互联网? 最近在读埃隆·马斯克传记,他说「我认为现在有非常多的聪明人都在致力于互联网」. 仔细一想,好像真的是这样的. 我问了自己一个问题:如果你不敲代码了,你能做 ...

随机推荐

  1. How to resolve unassigned shards in Elasticsearch——写得非常好

    How to resolve unassigned shards in Elasticsearch 转自:https://www.datadoghq.com/blog/elasticsearch-un ...

  2. caffe中lenet_solver.prototxt配置文件注解

    caffe框架自带的例子mnist里有一个lenet_solver.prototxt文件,这个文件是具体的训练网络的引入文件,定义了CNN网络架构之外的一些基础参数,如总的迭代次数.测试间隔.基础学习 ...

  3. Resolving Problems installing the Java JCE Unlimited Strength Jurisdiction Policy Files package--转

    原文地址:https://www.ca.com/us/services-support/ca-support/ca-support-online/knowledge-base-articles.tec ...

  4. RabbitMq笔记()

    RabbitMq 就是类似于一个数据库样式的操作工具. rabbit解释 有用户名登录密码之类的,还可以创建用户名,创建作用文件之类的. 2. 3.

  5. Swift 4.0:访问级别(访问控制)

    基础篇 注: 下文中所提及的类和类型为Class, Enum和Struct Swift中的访问级别有以下五种: open: 公开权限, 最高的权限, 可以被其他模块访问, 继承及复写. public: ...

  6. CDR都特价了,你还用破解版?

    目前,CDR X6特价活动,从18的年的元旦一直持续到现在,真可谓是痛快淋漓,大喜若狂,但是,似乎好像是....这么强有力的活动马上就要告一段落了,因为限量1000 套的抢购要卖!完!了!难不难过,痛 ...

  7. 3ds Max实例教程-顽皮的小孩

    本教程介绍使用3ds Max制作设计一个顽皮的小孩,这个作品的灵感来源于作者的亲身经历,也是以真实人物为原型做出来这么一个小人. 作者: Claudius Vesting 使用软件:3ds Max,P ...

  8. Intellij IDEA 2018.3激活破解方法(解决key is invalid)

    1.程序安装包: https://download.jetbrains.8686c.com/idea/ideaIU-2018.3.exe 2.破解补丁:http://idea.lanyus.com/j ...

  9. 算法38---292. Nim游戏

    1.题目: 你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头. 拿掉最后一块石头的人就是获胜者.你作为先手. 你们是聪明人,每一步都是最优解. 编写一个函 ...

  10. vue mint-ui swipe 不显示或显示空白

    vue mint-ui swipe 不显示或显示空白? 解决需要在mt-swipe上层元素设置高度 <div> <div> <mt-header title=" ...