zoukankan      html  css  js  c++  java
  • 青蛙学Linux—Nginx中的内置变量及常用指令

    1、Nginx中常用的内置变量

    Nginx的内置变量可以应用在配置文件中,比如设置日志记录的格式等。

    Nginx中有以下一些常用的内置变量:

    $args                # 此变量与请求行中的参数相等
    $document_root       # 此变量等同于当前请求的root指令指定的值
    $uri                 # 表示不带请求参数的当前URI,$uri不包含主机名
    $document_uri        # 此变量与$uri含义一样
    $host                # 此变量与请求头部中“Host”行指定的值一致
    $limit_rate          # 此变量用来设置限制连接的速率
    $request_method      # 此变量等同于request的method,通常是“GET”或“POST”
    $remote_addr         # 此变量表示客户端IP地址。
    $remote_port         # 此变量表示客户端端口。
    $remote_user         # 此变量等同于用户名,由ngx_http_auth_basic_module认证。
    $request_filename    # 此变量表示当前请求的文件的路径名,由root或alias和URI request组合而成
    $request_uri         # 此变量表示含有参数的完整的初始URI
    $query_string        # 此变量与$args含义一致
    $server_addr         # 表示请求的服务器地址
    $server_name         # 此变量表示请求到达的服务器名。默认是localhost
    $server_port         # 此变量表示请求到达的服务器的端口号
    $request_uri         # 包含请求参数的原始URI,不包含主机名,由客户端请求决定,不能修改

    2、Nginx中的常用指令

    2.1、if指令

    if指令用于判断一个条件,如果条件成立,则执行执行的语句。if指令的语法如下:

    if (条件){
        执行的语句;
    }

    if指令的默认值为none,可使用在配置文件中的server和location部分。

    if指令还可以在判断语句中指定正则表达式或通过Nginx内置变量来进行匹配条件。正则相关的匹配规则如下:

    • ~:区分大小写匹配
    • ~*:不区分大小写匹配
    • !~和!~*:区分大小写不匹配和不区分大小写不匹配

    文件及目录匹配:

    • -f和!-f:判断是否存在文件
    • -d和!-d:判断是否存在目录
    • -e和!-e:判断是否存在文件或目录
    • -x和!-x:判断文件是否可执行

    2.2、rewrite指令

    Nginx通过ngx_http_rewrite_module模块支持URL重写和if条件判断。但要实现URL重写rewrite功能,需要pcre的支持。rewrite指令的语法如下:

    rewrite 重写规则 标记;

    支持的标记主要有:

    • last:完成rewrite后搜索相应的URI或location,浏览器地址栏的URL不变
    • break:终止匹配,不再匹配后面的规则,浏览器地址栏的URL不变
    • redirect:返回302临时重定向,在浏览器地址栏会显示跳转后的URL
    • permanent:返回301永久重定向,在浏览器的地址栏会显示跳转后的URL

    rewrite指令的默认值为none,可以在配置文件的server和location部分以及if指令中使用。

    2.3、set指令

    通过set指令可以设置一个变量并为其赋值,值可以是文本、变量或它们的组合。也可以使用set指令定义一个新的变量,但不能设置$http_xxx头部变量的值。set指令的语法如下:

    set 变量名 值;

    set指令的默认值为none,可使用在配置文件中的server和location部分以及if指令中。

    2.4、break指令

    break指令可在匹配完当前的规则后不再匹配后面的规则。break指令的语法如下:

    break;

    break指令的默认值为none,可使用在配置文件中的server和location部分以及if指令中。

  • 相关阅读:
    nodejs 文件路径问题
    nodejs
    return , return true , return false的区别
    严防个人极端案事件 中央政法委要求健全危机干预机制
    《资本论》:什么是“原始积累”?农民的土地因何被社会剥夺
    程序员自我修炼(四)—— 代码重构
    中国各民族人口总数排名
    农村人可以去别的村买宅基地吗?这样合不合法?看完你就知道了!
    如果所在的农村拆迁了,可以在另外一个村申请宅基地吗?
    哈姆扎·本·拉登为什么反对美国?
  • 原文地址:https://www.cnblogs.com/yu2006070-01/p/10219598.html
Copyright © 2011-2022 走看看