zoukankan      html  css  js  c++  java
  • nginx中location的常用规则

    一 语法规则

    语法规则: location [=|~|~*|^~] /uri/ { … }
    = 开头表示精确匹配
    ^~ 开头表示uri以某个常规字符串开头,不是正则匹配。#^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
    ^~ /test/
    ~ 开头表示区分大小写的正则匹配
    ~ //
    ~*  开头表示不区分大小写的正则匹配
    !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
    / 通用匹配,任何请求都会匹配到。
    /test          test2323
    /test/
    @     #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files如 error_page, try_files
    多个location配置的情况下匹配顺序为:  
    首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
    "@"不能通过外部输入的url匹配
    ~ 这个指正则匹配
    
    

    二 举例

    1
    location = / {精确匹配,必须是127.0.0.1/
    #规则A
    }
    location = /login {精确匹配,必须是127.0.0.1/login
    #规则B
    }
    location ^~ /static/ {非精确匹配,并且不区分大小写,比如127.0.0.1/static/js.
    #规则C
    }
    location ~ .(gif|jpg|png|js|css)$ {区分大小写,以gif,jpg,js结尾
    #规则D
    }
    location ~* .png$ {不区分大小写,匹配.png结尾的
    #规则E
    }
    location !~ .xhtml$ {区分大小写,匹配不已.xhtml结尾的
    #规则F
    }
    location !~* .xhtml$ {
    #规则G
    }
    location / {什么都可以
    #规则H
    }
    
    
  • 相关阅读:
    批量替换文本的工具
    wcf异常显示错误到客户端
    文件以二进制存入数据库和从数据库读取二进制文件
    关于关系数据库的范式
    对于挑战书上的很久之前都看不懂的DP看懂的突破
    操作系统概念
    关于P,V操作理解的突破,关于并发设计与并行
    关于快速沃尔什变换
    我觉得我应该养成经常翻收藏夹的习惯
    目前我的思考模式
  • 原文地址:https://www.cnblogs.com/huningfei/p/12971845.html
Copyright © 2011-2022 走看看