精准匹配和普通匹配:
   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. 一题多解(一) —— list(Python)判空(以及 is 与 == 的区别)

    >> l = [] 1. == >> l == [] True 2. not >> not l True 3. 注意 is 与 == 的区别 >> l ...

  2. WIN7使用VisualSVN建立SVN服务器

    使用SVN开发十分的方便,这样就不用每次都拷贝粘贴来备份了,网上看到一篇给自己的windows电脑安装SVN服务器的使用非常方便. 1.下载安装文件(服务器端和客户端) 服务器端采用VisualSVN ...

  3. 如何解决bib的一些问题

    胡老师留的大作业要求综述,因而有很多文献引用.但是当使用bibtex的方法,特别是中文文献的引用会遇到一些问题. 网上相关的解答有: http://blog.sciencenet.cn/blog-10 ...

  4. 51nod 1101 换零钱 完全背包的变型 动态规划

    题目: 思路: ;i < ; i++){ for(int j = a[i];j <= n; j++){ dp[j] = (dp[j] + dp[j-a[i]])%mod; } } a[i] ...

  5. pic中断特别说明

    在调试产品W660-MODBUS过程中发现,程序工作在偶然情况下会工作异常,经过将近一个礼拜的追踪,发现PIC中断有一下两个怪异特性: 在刚进入中断时就应该清除中断标志,如果在最后返回之前才清除标志, ...

  6. php如何实现文件下载

    php如何实现文件下载 1. 设置超链接的href属性 <ahref="文件地址"></a> 如果浏览器不能解析该文件,浏览器会自动下载.而如果文件是图片或 ...

  7. 并发设计模式之Guarded Suspension模式

    - 原文链接: http://www.joyhwong.com/2016/11/19/并发设计模式之guarded-suspension模式/ Guarded Suspension意为保护暂停,其核心 ...

  8. Servicification

    Servicification Summary The Chromium codebase now supports many platforms and use cases. In response ...

  9. NOIp2018模拟赛三十八

    爆〇啦~ A题C题不会写,B题头铁写正解: 随手过拍很自信,出分一看挂成零. 若要问我为什么?gtmdsubtask! 神tm就一个subtask要么0分要么100,结果我预处理少了一点当场去世 难受 ...

  10. JSON.stringify(),JSON.parse(),eval(string)

      JSON.stringify()用于从一个对象解析出字符串 : var obj = {"name":"week","age":" ...