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指令中。

  • 相关阅读:
    《DSP using MATLAB》Problem 6.17
    一些老物件
    《DSP using MATLAB》Problem 6.16
    《DSP using MATLAB》Problem 6.15
    《DSP using MATLAB》Problem 6.14
    《DSP using MATLAB》Problem 6.13
    《DSP using MATLAB》Problem 6.12
    《DSP using MATLAB》Problem 6.11
    P1414 又是毕业季II
    Trie树
  • 原文地址:https://www.cnblogs.com/yu2006070-01/p/10219598.html
Copyright © 2011-2022 走看看