Nginx中全局变量整理小结

Variables

The core module supports built-in variables, whose names correspond with the names of variables in Apache.

First of all, there are the variables, which represent the lines of the title of the client request, for example, $http_user_agent, $http_cookie, and so forth.

Furthermore, there are other variables:
Edit section: $arg_PARAMETER $arg_PARAMETER

This variable contains the value of the GET request variable PARAMETER if present in the query string
Edit section: $args $args

This variable is equal to arguments in the line of request;
Edit section: $binary_remote_addr $binary_remote_addr

The address of the client in binary form;
Edit section: $body_bytes_sent $body_bytes_sent

(undocumented)
Edit section: $content_length $content_length

This variable is equal to line Content-Length in the header of request;
Edit section: $content_type $content_type

This variable is equal to line Content-Type in the header of request;
Edit section: $cookie_COOKIE $cookie_COOKIE

The value of the cookie COOKIE;
Edit section: $document_root $document_root

This variable is equal to the value of directive root for the current request;
Edit section: $document_uri $document_uri

The same as $uri.
Edit section: $host $host

This variable is equal to line Host in the header of request or name of the server processing the request if the Host header is not available.

This variable may have a different value from $http_host when the Host input header is absent or has an empty value.
Edit section: $http_HEADER $http_HEADER

The value of the HTTP header HEADER when converted to lowercase and with ‘dashes' converted to ‘underscores', e.g. $http_user_agent, $http_referer…;
Edit section: $is_args $is_args

Evaluates to “?” if $args is set, “” otherwise.
Edit section: $limit_rate $limit_rate

This variable allows limiting the connection rate.
Edit section: $query_string $query_string

The same as $args.
Edit section: $remote_addr $remote_addr

The address of the client.
Edit section: $remote_port $remote_port

The port of the client;
Edit section: $remote_user $remote_user

This variable is equal to the name of user, authenticated by the Auth Basic Module;
Edit section: $request_filename $request_filename

This variable is equal to path to the file for the current request, formed from directives root or alias and URI request;
Edit section: $request_body $request_body

This variable(0.7.58+) contains the body of the request. The significance of this variable appears in locations with directives proxy_pass or fastcgi_pass.
Edit section: $request_body_file $request_body_file

Client request body temporary filename;
Edit section: $request_completion $request_completion

(undocumented)
Edit section: $request_method $request_method

This variable is equal to the method of request, usually GET or POST.

Before and including 0.8.20, this variable always evaluates to the method name of the main request, not the current request if the current request is a subrequest.
Edit section: $request_uri $request_uri

This variable is equal to the complete initial URI together with the arguments;
Edit section: $scheme $scheme

The HTTP scheme (i.e. http, https). Evaluated only on demand, for example:

rewrite ^(.+)$ $scheme://example.com$1 redirect;

Edit section: $server_addr $server_addr

Equal to the server address. As a rule, for obtaining the value of this variable is done one system call. In order to avoid system call, it is necessary to indicate addresses in directives listen and to use parameter bind.
Edit section: $server_name $server_name

The name of the server.
Edit section: $server_port $server_port

This variable is equal to the port of the server, to which the request arrived;
Edit section: $server_protocol $server_protocol

This variable is equal to the protocol of request, usually this HTTP/1.0 or HTTP/1.1.
Edit section: $uri $uri

This variable is equal to current URI in the request, it can differ from initial, for example by internal redirects, or with the use of index it is file with internal redirects.

参考:

http://www.givingtree.com.cn/entry/Nginx-Location%E5%9F%BA%E6%9C%AC%E8%AF%AD%E6%B3%95

http://wiki.nginx.org/NginxHttpCoreModule#Variables


$args 此变量与请求行中的参数相等

$content_length 等于请求行的“Content_Length”的值。

$content_type 等同与请求头部的”Content_Type”的值

$document_root 等同于当前请求的root指令指定的值

$document_uri 与$uri一样

$host 与请求头部中“Host”行指定的值或是request到达的server的名字(没有Host行)一样

$limit_rate 允许限制的连接速率

$request_method 等同于request的method,通常是“GET”或“POST”

$remote_addr 客户端ip

$remote_port 客户端port

$remote_user 等同于用户名,由ngx_http_auth_basic_module认证

$request_filename 当前请求的文件的路径名,由root或alias和URI request组合而成

$request_body_file

$request_uri 含有参数的完整的初始URI

$query_string 与$args一样

$server_protocol 等同于request的协议,使用“HTTP/1.0”或“HTTP/1.1”

$server_addr request到达的server的ip,一般获得此变量的值的目的是进行系统调用。为了避免系统调用,有必要在listen指令中指明ip,并使用bind参数。

$server_name 请求到达的服务器名

$server_port 请求到达的服务器的端口号

$uri 等同于当前request中的URI,可不同于初始值,例如内部重定向时或使用index

(0)

相关推荐

  • 浅析Nginx配置文件中的变量的编写使用

    nginx 的配置文件使用的就是一门微型的编程语言,许多真实世界里的 Nginx 配置文件其实就是一个一个的小程序.当然,是不是"图灵完全的"暂且不论,至少据我观察,它在设计上受 Perl 和 Bourne shell 这两种语言的影响很大.在这一点上,相比 Apache 和 Lighttpd 等其他 Web 服务器的配置记法,不能不说算是 Nginx 的一大特色了.既然是编程语言,一般也就少不了"变量"这种东西(当然,Haskell 这样奇怪的函数式语言除外了).

  • nginx全局变量整理小结

    $args 此变量与请求行中的参数相等 $content_length 等于请求行的"Content_Length"的值. $content_type 等同与请求头部的"Content_Type"的值 $document_root 等同于当前请求的root指令指定的值 $document_uri 与$uri一样 $host 与请求头部中"Host"行指定的值或是request到达的server的名字(没有Host行)一样 $limit_rate

  • Nginx中全局变量整理小结

    Variables The core module supports built-in variables, whose names correspond with the names of variables in Apache. First of all, there are the variables, which represent the lines of the title of the client request, for example, $http_user_agent, $

  • Pandas中DataFrame基本函数整理(小结)

    构造函数 DataFrame([data, index, columns, dtype, copy]) #构造数据框 属性和数据 DataFrame.axes #index: 行标签:columns: 列标签 DataFrame.as_matrix([columns]) #转换为矩阵 DataFrame.dtypes #返回数据的类型 DataFrame.ftypes #返回每一列的 数据类型float64:dense DataFrame.get_dtype_counts() #返回数据框数据类

  • webpack4.0打包优化策略整理小结

    本文介绍了webpack4.0打包优化策略整理小结,分享给大家,具体如下: webapck4 新特性介绍-参考资料 当前依赖包的版本 1.优化loader配置 1.1 缩小文件匹配范围(include/exclude) 通过排除node_modules下的文件 从而缩小了loader加载搜索范围 高概率命中文件 module: { rules: [ { test: /\.js$/, use: 'babel-loader', exclude: /node_modules/, // 排除不处理的目录

  • Docker管理之碎片知识整理小结

    目录 一.概述 二.应用示例 2.1.Docker容器隔离之Namespace 2.2.Docker之自由限制cgroup 2.3.给运行中的容器设置端口映射 2.4.修改运行中docker容器中的内容 2.5.Docker容器迁移到其他服务器 2.6.查看docker镜像中文件 2.7.运行容器:docker run常用选项 一.概述 本文旨在汇总整理Docker日常管理之知识碎片,以便日后回顾查看参考. 二.应用示例 2.1.Docker容器隔离之Namespace Namespace:是容

  • 解析Nginx中的日志模块及日志基本的初始化和过滤配置

    无论在任何项目中,日志都是一个非常重要的模块,无论是问题定位还是日常信息的管理,都离不开他 在nginx中,ngx_errlog_module模块专门用于处理nginx日志信息,是nginx的core模块之一 在 main 函数中,时间初始化结束后马上进行的就是日志模块的初始化 日志结构: 日志模块的初始化主要做的事情就是初始化全局变量 ngx_log,并创建 errlog 文件 ngx_log_s 结构 ngx_log 变量是一个 ngx_log_s 结构体,定义在 core/ngx_log.

  • vue v-for 使用问题整理小结

    今天使用v-for指令的时候遇到一个错误 [Vue warn]: Error in render: "TypeError: Cannot read property 'children' of undefined" 页面使用代码 <template v-for="(c,i) in modelList.Course.children"> <div :key="i" class="course-block">

  • 解读nginx中limit配置参数

    本文主要解析一下ngx_http_core_module.ngx_http_limit_conn_module以及ngx_http_limit_req_module中的limit相关配置参数. limit_rate 名称 默认配置 作用域 官方说明 中文解读 模块 limit_rate limit_rate 0; http, server, location, if in location Limits the rate of response transmission to a client.

  • Nginx中accept锁的机制与实现详解

    前言 nginx采用多进程的模,当一个请求过来的时候,系统会对进程进行加锁操作,保证只有一个进程来接受请求. 本文基于Nginx 0.8.55源代码,并基于epoll机制分析 1. accept锁的实现 1.1 accpet锁是个什么东西 提到accept锁,就不得不提起惊群问题. 所谓惊群问题,就是指的像Nginx这种多进程的服务器,在fork后同时监听同一个端口时,如果有一个外部连接进来,会导致所有休眠的子进程被唤醒,而最终只有一个子进程能够成功处理accept事件,其他进程都会重新进入休眠

  • nginx cookie有效期讨论小结

    每一次访问都会在浏览器生成Cookie,那么Cookie的存在对于用户来说是好还是坏呢?说实话,这玩意的存在确实会带来一系列的问题,有趣的是几乎每个站点都难以离开Cookie,由于Cookie的使用因其貌似简单,而很容易被人轻视.最近在开发过程中,审视应用中的Cookie代码,几乎只需要很小的代价就可以获得巨大的安全收益.因此写下这份笔记加深记忆. cookie的安全隐患 在实际的应用场景中,Cookie被用来做得最多的一件事是保持身份认证的服务端状态.这种保持可能是基于会话Session的,也

随机推荐