zoukankan      html  css  js  c++  java
  • Linux-13 nginx-Location语法

    dns解析流程 

    1.首先用户输入一段url,在浏览器  www.oldboyedu.com 
    2.(dns解析的第一步)浏览器会首先在你的机器上,寻找一个hosts文件,这是本地测试dns解析文件
    2.(第二步)如果hosts文件未指定解析记录,浏览器就去机器的dns缓存中寻找解析记录  LDNS(local dns缓存)
    3.(第三步)如果缓存也没有记录,去指定的dns服务器中(手动配置,linux底下/etc/reslove.),去网络中寻找解析记录
    /etc/resolv.conf
    写入两条dns记录
    主dns服务器  nameserver  x.x.x.x
    备dns服务器  nameserver  x.x.x.x 
    
    linux解析dns的命令
    nslookup(nameserver lookup  域名服务器查找 )
    
    4.dns服务器会将查找到的ip和域名对应的记录,返回给浏览器,浏览器就知道访问的ip服务器是谁了
    5.此时操作系统会将这条解析记录,写入到本地dns缓存中,LDNS
    
    
    #状态码
    300系列就是  你访问的url经过重定向redirect,  baidu.com   >  diaoyu.baidu.com 
    

      

    Location语法优先级排列

    复制代码
    匹配符 匹配规则 优先级
    =    精确匹配    1
    ^~    以某个字符串开头    2
    ~    区分大小写的正则匹配    3
    ~*    不区分大小写的正则匹配    4
    !~    区分大小写不匹配的正则    5
    !~*    不区分大小写不匹配的正则    6
    /    通用匹配,任何请求都会匹配到    7
    复制代码

    location匹配顺序

    1.location = / {
      我是代码1,精确匹配
    } 
    #  www.cj.com/
    
    2.location ^~ /images/ {
    我是代码2
    }  匹配常规串,不做正则检查
    # www.cj.com/images/
    
    
    3.location ~* .(gif|jpg|jpeg) {
    我是代码3
    } 正则匹配
    #www.cj.com/xxx.gif  
    #www.cj.com/xxx.jpg 
    #www.cj.com/xxx.gif
    #www.cj.com/xxx.jpeg
    
     
    4. location /av/ {
    我是代码4
    }  匹配常规字符,有正则优先正则
     www.cj.com/av/xx资源
    
    
    #如果你谁都没匹配到的话,默认走/,走网页根目录,优先级最低
    
    5.location / {
    我是代码5
    }  所有的location都不匹配后,默认匹配
    

      

    nginx.conf配置文件实例

    复制代码
    server {
        listen 80;
        server_name pythonav.cn;
    
        #优先级1,精确匹配,根路径
        location =/ {
            return 400;
        }
    
        #优先级2,以某个字符串开头,以av开头的,优先匹配这里,区分大小写
        location ^~ /av {
           root /data/av/;
        }
    
        #优先级3,区分大小写的正则匹配,匹配/media*****路径
        location ~ /media {
              alias /data/static/;
        }
    
        #优先级4 ,不区分大小写的正则匹配,所有的****.jpg|gif|png 都走这里
        location ~* .*.(jpg|gif|png|js|css)$ {
           root  /data/av/;
            }
    
        #优先7,通用匹配
        location / {
            return 403;
        }
    }
    复制代码

    nginx语法之root和alias区别实战

    复制代码
    nginx指定文件路径有root和alias两种方法
    区别在方法和作用域:
    
    方法:
    
    root
    语法  root  路径;
    默认值 root   html;
    配置块  http{}   server {}   location{}
    
    alias
    语法: alias  路径
    配置块  location{}
    
    
    root和alias区别在nginx如何解释location后面的url,这会使得两者分别以不同的方式讲请求映射到服务器文件上
    
    root参数是root路径+location位置
    
    root实例:
    
        location ^~ /av {
            root /data/av;   注意这里可有可无结尾的   /
        }
    请求url是pythonav.cn/av/index.html时
    web服务器会返回服务器上的/data/av/av/index.html
    
    root实例2:
    location ~* .*.(jpg|gif|png|js|css)$ {
           root  /data/av/;
    }
    
    请求url是pythonav.cn/girl.gif时
    web服务器会返回服务器上的/data/static/girl.gif
    
    
    
    
    alias实例:
    alias参数是使用alias路径替换location路径
    alias是一个目录的别名
    注意alias必须有 "/"  结束!
    alias只能位于location块中
    
    
    请求url是pythonav.cn/av/index.html时
    web服务器会返回服务器上的/data/static/index.html
    
    location ^~ /av {
        alias /data/static/;
    }
    复制代码
    幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。
  • 相关阅读:
    PHP 的 序列化与反序列化 自己的理解
    通达OA 11.6 rce漏洞复现
    MySQL 表字段唯一性约束设置方法unique
    HTTP响应状态码
    PHP 魔术变量
    PHP匿名函数使用技巧
    PHP 三大结构
    PHP unset()函数销毁变量
    算法第五章作业
    算法第四章作业
  • 原文地址:https://www.cnblogs.com/TodayWind/p/13716720.html
Copyright © 2011-2022 走看看