• 《Nginx


    一:Location 作用

      - location 定位 ,也就是可以通过不同URL进行定位,可以很大的增加它配置的灵活性。

    二:相关变量

    • 示例:
          http://192.168.27.27/xxxx 
              $request_uri  = /xxxx
      
          http://baidu.com/icon.png
              $request_uri  = /icon.png
      可以配置你的 Nginx 查看具体的 $request_uri 的值
      location /requesturi {
      add_header Content-type 'text/html; charset=utf-8';
      return 200 $request_uri;
      }

    三:location的匹配规则

      - 可以看到,匹配路由的话更多是匹配 $request_uri 的路径

      - Nginx 可以在 location 中支持我们如下的匹配规则

         开头表示精确匹配

        ^~ 开头,注意这不是一个正则表达式--它的目的是优于正则表达式的匹配。如果该location是最佳匹配,则不再进行正则表达式检测。

        ~  开头表示区分大小写的正则匹配;

        ~* 开头表示不区分大小写的正则匹配

        / 通用匹配, 如果没有其它匹配,任何请求都会匹配到

       - 具体用法

      • 
        
        location = /demo/ {
            在以等号为精确匹配时,$request_uri 必须等于 /demo/ 时才能匹配,不过这也印证了精确匹配这个词汇,准确,分毫不差。
        }

        location ^~ /demo/ {   首要要注意的是这不是一个正则表达式的匹配,它的目的是优于正则表达式的匹配,可以匹配到满足'/demo/*'的所有url。 }
        location ~ .php$ {    好吧,这就是一个正则匹配了,上面表示匹配到结尾为 .php 的 url 路径。 }
        location ~* .php$ {    这个看起来和上面那个也没什么区别,有什么不同呢?不同是这个匹配开头不会区分大小写。注意了~!是开头 }

    四:  匹配优先级

      - [精确匹配 =]  >  [全匹配^~]  >  [正则匹配]  >  [进行通用匹配]

      - 在实际应用中的推荐配置

      • 所以实际使用中,个人觉得至少有三个匹配规则定义,如下:
        #直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,官网如是说。
        #这里是直接转发给后端应用服务器了,也可以是一个静态首页
        # 第一个必选规则
        location = / {
            proxy_pass http://tomcat:8080/index
        }
        # 第二个必选规则是处理静态文件请求,这是nginx作为http服务器的强项
        # 有两种配置模式,目录匹配或后缀匹配,任选其一或搭配使用
        location ^~ /static/ {
            root /webroot/static/;
        }
        location ~* .(gif|jpg|jpeg|png|css|js|ico)$ {
            root /webroot/res/;
        }
        #第三个规则就是通用规则,用来转发动态请求到后端应用服务器
        #非静态文件请求就默认是动态请求,自己根据实际把握
        #毕竟目前的一些框架的流行,带.php,.jsp后缀的情况很少了
        location / {
            proxy_pass http://tomcat:8080/
        }

          

  • 相关阅读:
    2013百度轻应用巡讲沙龙上海站
    xcode自动打ipa包脚本 资料
    Xcode 自动对齐 插件
    Lable中添加链接文字。。。各种操作 都能满足。简单易用【NIAttributedLabel】
    XMPP 安装ejabberd 搭建服务器环境
    git 终端命令行工具(忽略大小写,很好用)
    IOS团队开发之——CocoaPods 第三方库管理工具
    XCode 调试方法 (很全 很有用)
    模块化设计-iOS团队协作开发 v1.0
    淘宝技术部(ios 优化方案)
  • 原文地址:https://www.cnblogs.com/25-lH/p/8616165.html
Copyright © 2020-2023  润新知