• Nginx基础06:location语法


    location语法表示uri方式定位

    基础语法有三种:

    • location = pattern{}  精准匹配
    • location  pattern{}  一般匹配
    • location ~ pattern{}       正则匹配

    location正则表达式:

    • "~ xxx":匹配访问的请求的URL中必须包含"xxx"
    • "~* xXx":匹配忽略后面"xXx"是否大小写
    • /xxx:匹配访问的请求的URL必须是"xxx"开头
    • ^xxx:匹配访问的请求的URL前缀是"xxx"
    • abc$:匹配访问的请求的URL是以abc结尾
    • .*:任何请求

    Nginx语法:

      if(条件为:=~ ~*)

      return:返回指定页面

      break:退出,结束语句

      rewrite:重写地址,转发到其他请求地址,其后必须跟break,否则转发失败(1、可隐藏实际访问地址,虚拟地址在nginx下转发至实际地址,2、请求分流[实例在下面:根据正则分流请求])

      -f:是否为文件

      -d:是否为目录

      -e:是否存在

    举例:

    location ~ test {

    # 重写语法:if return (条件 = ~ ~*)

    #当访问地址IP为 192.168.1.40时,返回401页面

    #场景:小的限制(黑名单、白名单、使用脚本禁用用户等)

    if ($remote_addr = 192.168.1.200) {
     return 401;
    }

    #当访问的浏览器是firefox时(~* firefox:忽略firefox大小写),将请求转发至firefox.html页面
    if ($http_user_agent ~* firefox) {
        rewrite ^.*$ /firefox.html;
        break;
    }

    root bhz.com;
    index index.html;
    }

    location /goods {

    #goods-(d{1,5}).html:URLgoods开头,(d{1,5})是一个最小1位最大5位的数字(0-99999)

    #例如:goods-12345.html,超出5位数字报页面404

    #上面的地址重写(转发)到指定地址/goods-ctrl.html(可以指向一个动态URL或服务)
      rewrite "goods-(d{1,5}).html" /goods-ctrl.html;
      root bhz.com;
      index index.html;
    }

    动静分离:

    1. 一个service(虚拟主机服务配置)可以配置多个location
    2. 静态的html、js、image、css等放入指定的静态目录下,当客户端访问nginx能匹配到当前正则表达式的location时,可对文件进行缓存,对网站优化很有用
    3. 当客户端访问动态的请求时,可通过特定的location进行反向代理来访问指定处理请求的服务器(tomcat等)

    动态的请求访问web服务器(tomcat等)

    静态的请求访问Nginx服务器(在root下放一堆静态文件)

  • 相关阅读:
    集成学习
    逻辑斯谛回归
    【腾讯】【实习】【笔试】【数据分析师】2018.04.05
    C语言中scanf和printf的用法详解
    寻找一个数组中未出现的最小正整数(数组元素可重复)
    吃鸡问题中的的动态规划
    Coursera 深度学习 吴恩达 deep learning.ai 第三课 结构化机器学习项目 第二周 测试题目 Autonomous driving (case study)
    【转】P问题与NP问题详细解答加举例
    LeetCode 149. Max Points on a Line
    LeetCode 150. Evaluate Reverse Polish Notation
  • 原文地址:https://www.cnblogs.com/chai-blogs/p/13062635.html
Copyright © 2020-2023  润新知