• nginx 全局变量


    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
    内部邀请码:C8E245J (不写邀请码,没有现金送)
    国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为“中国PE第一股”,市值超1000亿元。 
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

    经常需要配置Nginx ,其中有许多以 $ 开头的变量,经常需要查阅nginx 所支持的变量。

    可能是对 Ngixn资源不熟悉,干脆就直接读源码,分析出支持的变量。

    Nginx支持的http变量实现在 ngx_http_variables.c 的 ngx_http_core_variables存储实现:

    ngx_http_core_variables
      1 static ngx_http_variable_t  ngx_http_core_variables[] = {
    2
    3 { ngx_string("http_host"), NULL, ngx_http_variable_header,
    4 offsetof(ngx_http_request_t, headers_in.host), 0, 0 },
    5
    6 { ngx_string("http_user_agent"), NULL, ngx_http_variable_header,
    7 offsetof(ngx_http_request_t, headers_in.user_agent), 0, 0 },
    8
    9 { ngx_string("http_referer"), NULL, ngx_http_variable_header,
    10 offsetof(ngx_http_request_t, headers_in.referer), 0, 0 },
    11
    12 #if (NGX_HTTP_GZIP)
    13 { ngx_string("http_via"), NULL, ngx_http_variable_header,
    14 offsetof(ngx_http_request_t, headers_in.via), 0, 0 },
    15 #endif
    16
    17 #if (NGX_HTTP_PROXY || NGX_HTTP_REALIP)
    18 { ngx_string("http_x_forwarded_for"), NULL, ngx_http_variable_header,
    19 offsetof(ngx_http_request_t, headers_in.x_forwarded_for), 0, 0 },
    20 #endif
    21
    22 { ngx_string("http_cookie"), NULL, ngx_http_variable_headers,
    23 offsetof(ngx_http_request_t, headers_in.cookies), 0, 0 },
    24
    25 { ngx_string("content_length"), NULL, ngx_http_variable_header,
    26 offsetof(ngx_http_request_t, headers_in.content_length), 0, 0 },
    27
    28 { ngx_string("content_type"), NULL, ngx_http_variable_header,
    29 offsetof(ngx_http_request_t, headers_in.content_type), 0, 0 },
    30
    31 { ngx_string("host"), NULL, ngx_http_variable_host, 0, 0, 0 },
    32
    33 { ngx_string("binary_remote_addr"), NULL,
    34 ngx_http_variable_binary_remote_addr, 0, 0, 0 },
    35
    36 { ngx_string("remote_addr"), NULL, ngx_http_variable_remote_addr, 0, 0, 0 },
    37
    38 { ngx_string("remote_port"), NULL, ngx_http_variable_remote_port, 0, 0, 0 },
    39
    40 { ngx_string("server_addr"), NULL, ngx_http_variable_server_addr, 0, 0, 0 },
    41
    42 { ngx_string("server_port"), NULL, ngx_http_variable_server_port, 0, 0, 0 },
    43
    44 { ngx_string("server_protocol"), NULL, ngx_http_variable_request,
    45 offsetof(ngx_http_request_t, http_protocol), 0, 0 },
    46
    47 { ngx_string("scheme"), NULL, ngx_http_variable_scheme, 0, 0, 0 },
    48
    49 { ngx_string("request_uri"), NULL, ngx_http_variable_request,
    50 offsetof(ngx_http_request_t, unparsed_uri), 0, 0 },
    51
    52 { ngx_string("uri"), NULL, ngx_http_variable_request,
    53 offsetof(ngx_http_request_t, uri),
    54 NGX_HTTP_VAR_NOCACHEABLE, 0 },
    55
    56 { ngx_string("document_uri"), NULL, ngx_http_variable_request,
    57 offsetof(ngx_http_request_t, uri),
    58 NGX_HTTP_VAR_NOCACHEABLE, 0 },
    59
    60 { ngx_string("request"), NULL, ngx_http_variable_request_line, 0, 0, 0 },
    61
    62 { ngx_string("document_root"), NULL,
    63 ngx_http_variable_document_root, 0, NGX_HTTP_VAR_NOCACHEABLE, 0 },
    64
    65 { ngx_string("realpath_root"), NULL,
    66 ngx_http_variable_realpath_root, 0, NGX_HTTP_VAR_NOCACHEABLE, 0 },
    67
    68 { ngx_string("query_string"), NULL, ngx_http_variable_request,
    69 offsetof(ngx_http_request_t, args),
    70 NGX_HTTP_VAR_NOCACHEABLE, 0 },
    71
    72 { ngx_string("args"),
    73 ngx_http_variable_request_set,
    74 ngx_http_variable_request,
    75 offsetof(ngx_http_request_t, args),
    76 NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE, 0 },
    77
    78 { ngx_string("is_args"), NULL, ngx_http_variable_is_args,
    79 0, NGX_HTTP_VAR_NOCACHEABLE, 0 },
    80
    81 { ngx_string("request_filename"), NULL,
    82 ngx_http_variable_request_filename, 0,
    83 NGX_HTTP_VAR_NOCACHEABLE, 0 },
    84
    85 { ngx_string("server_name"), NULL, ngx_http_variable_server_name, 0, 0, 0 },
    86
    87 { ngx_string("request_method"), NULL,
    88 ngx_http_variable_request_method, 0,
    89 NGX_HTTP_VAR_NOCACHEABLE, 0 },
    90
    91 { ngx_string("remote_user"), NULL, ngx_http_variable_remote_user, 0, 0, 0 },
    92
    93 { ngx_string("body_bytes_sent"), NULL, ngx_http_variable_body_bytes_sent,
    94 0, 0, 0 },
    95
    96 { ngx_string("request_completion"), NULL,
    97 ngx_http_variable_request_completion,
    98 0, 0, 0 },
    99
    100 { ngx_string("request_body"), NULL,
    101 ngx_http_variable_request_body,
    102 0, 0, 0 },
    103
    104 { ngx_string("request_body_file"), NULL,
    105 ngx_http_variable_request_body_file,
    106 0, 0, 0 },
    107
    108 { ngx_string("sent_http_content_type"), NULL,
    109 ngx_http_variable_sent_content_type, 0, 0, 0 },
    110
    111 { ngx_string("sent_http_content_length"), NULL,
    112 ngx_http_variable_sent_content_length, 0, 0, 0 },
    113
    114 { ngx_string("sent_http_location"), NULL,
    115 ngx_http_variable_sent_location, 0, 0, 0 },
    116
    117 { ngx_string("sent_http_last_modified"), NULL,
    118 ngx_http_variable_sent_last_modified, 0, 0, 0 },
    119
    120 { ngx_string("sent_http_connection"), NULL,
    121 ngx_http_variable_sent_connection, 0, 0, 0 },
    122
    123 { ngx_string("sent_http_keep_alive"), NULL,
    124 ngx_http_variable_sent_keep_alive, 0, 0, 0 },
    125
    126 { ngx_string("sent_http_transfer_encoding"), NULL,
    127 ngx_http_variable_sent_transfer_encoding, 0, 0, 0 },
    128
    129 { ngx_string("sent_http_cache_control"), NULL, ngx_http_variable_headers,
    130 offsetof(ngx_http_request_t, headers_out.cache_control), 0, 0 },
    131
    132 { ngx_string("limit_rate"), ngx_http_variable_request_set_size,
    133 ngx_http_variable_request_get_size,
    134 offsetof(ngx_http_request_t, limit_rate),
    135 NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE, 0 },
    136
    137 { ngx_string("nginx_version"), NULL, ngx_http_variable_nginx_version,
    138 0, 0, 0 },
    139
    140 { ngx_string("hostname"), NULL, ngx_http_variable_hostname,
    141 0, 0, 0 },
    142
    143 { ngx_string("pid"), NULL, ngx_http_variable_pid,
    144 0, 0, 0 },
    145
    146 { ngx_null_string, NULL, NULL, 0, 0, 0 }
    147 };

    把这些变量提取下,总结如下:

    已Excel形式提供,方便查询:

    https://files.cnblogs.com/AloneSword/nginx%E5%86%85%E7%BD%AE%E5%8F%98%E9%87%8F.rar

  • 相关阅读:
    在idea的控制台进行git pull 或者git push的时候每次都要输入用户名和密码的解决办法
    js中和html中onclick绑定函数要不要加括号的问题
    ElementUI checkbox组件中的indeterminate 状态
    js之常见问题--for循环中为什么点击总是弹出最后一个i
    vue中watch监听浏览器窗口大小的改变
    Duplicate keys detected: '0'. This may cause an update error.
    数组对象去重总结
    【转载】git 回退版本
    K8s
    go 记录日志到Elk
  • 原文地址:https://www.cnblogs.com/AloneSword/p/2283483.html
Copyright © 2020-2023  润新知