nginx变量

$arg_PARAMETER                 功能:如果在请求中设置了查询字符串,那么这个变量包含在查询字符串是GET请求PARAMETER中的值。

$args                                        功能:该变量的值是GET请求在请求行中的参数。

$binary_remote_addr          功能:二进制格式的客户端地址

$body_bytes_sent                 功能:响应体的大小,即使发生了中断或者是放弃,也是一样的准确。

$content_length                    功能:该变量的值等于请求头中的Content-length字段的值

$cookie_COOKIE                    功能:该变量的值是cookie COOKIE的值

$document_root                   功能:该变量的值为当前请求的location(http,server,location,location中的if)中root指令中指定的值。

$document_uri                      功能:同$uri

$host                                        功能:该变量的值等于请求头中Host的值。如果Host无效时,那么就是处理该请求的server的名称。

在下列情况中,$host变量的取值不同于$http_host变量。

  • 当请求头中的Host字段未指定(使用默认值)或者为空值,那么$host等于server_name指令指定的值。
  • 当Host字段包含端口是,$host并不包含端口号。另外,从0.8.17之后的nginx中,$host的值总是小写。

$hostname                              功能:有gethostname返回值设置机器名。

$http_HEADER                       功能:该变量的值为HTTP 请求头HEADER,具体使用时会转换为小写,并且将“——”(破折号)转换为"_"(下划线)。

$is_args                                    功能: 如果设置了$args,那么值为“?”,否则为“”

$limit_rate                              功能:该变量允许限制连接速率。

$nginx_version                       功能: 当前运行的nginx的版本号

$query_string                         功能:同$args

$remote_addr                        功能:客户端的IP地址

$remote_user                        功能: 该变量等于用户的名字,基本身份验证模块使用。

$remote_port                        功能: 客户端连接端口

$request_filename               功能:该变量等于当前请求文件的路径,有指令root或者alias和URI构成。

$request_body                     功能:该变量包含了请求体的主要信息。该变量与proxy_pass或者fastcgi_pass相关。

$request_body_file              功能:客户端请求体的临时文件。

$request_completion          功能:如果请求成功完成,那么显示“OK”。如果请求没有完成或者请求不是该请求系列的最后一部分,那么它的值为空。

$request_method                功能:该变量的值通常是GET或者POST。

$request_uri                          功能:该变量的值等于原始的URI请求,就是说从客户端收到的参数包括了原始请求的URI,该值是不可以被修改的,不包含主机名,例如“/foo/bar.php?arg=baz”。

$scheme                                 功能:该变量表示HTTP scheme(例如HTTP,HTTPS),根据实际使用情况来决定,

例如:rewrite  ^ $scheme://example.com$uri redirect;

$server_addr                         功能:该变量的值等于服务器的地址。通常来说,在完成一次系统调用之后就会获取变量的值,为了避开系统钓鱼,那么必须在listen指令中使用bind参数。

$server_name                       功能:该变量为server的名字。

$server)port                          功能:该变量等于接收请求的端口。

$server_protocol                 功能:该变量的值为请求协议的值,通常是HTTP/1.0或者HTTP/1.1

$uri                                        功能:该变量的值等于当前请求中的URI(没有参数,不包括$args)的值。它的值不同于request_uri,由浏览器客户端发送的request_uri的值。例如,可能会被内部重定向或者使用index。

另外需要注意:$uri不包含主机名,例如 "/foo/bar.html"

当前判断URL= $scheme://$server_name/$url

时间: 2024-11-06 12:42:50

nginx变量的相关文章

Nginx 变量漫谈(一)

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

Nginx 变量漫谈(五)

前面在 (二) 中我们已经了解到变量值容器的生命期是与请求绑定的,但是我当时有意避开了“请求”的正式定义.大家应当一直默认这里的“请求”都是指客户端发起的 HTTP 请求.其实在 Nginx 世界里有两种类型的“请求”,一种叫做“主请求”(main request),而另一种则叫做“子请求”(subrequest).我们先来介绍一下它们. 所谓“主请求”,就是由 HTTP 客户端从 Nginx 外部发起的请求.我们前面见到的所有例子都只涉及到“主请求”,包括 (二) 中那两个使用 echo_ex

Nginx 变量漫谈(七)

在 (一) 中我们提到过,Nginx 变量的值只有一种类型,那就是字符串,但是变量也有可能压根就不存在有意义的值.没有值的变量也有两种特殊的值:一种是“不合法”(invalid),另一种是“没找到”(not found). 举例说来,当 Nginx 用户变量 $foo 创建了却未被赋值时,$foo 的值便是“不合法”:而如果当前请求的 URL 参数串中并没有提及 XXX 这个参数,则 $arg_XXX 内建变量的值便是“没找到”. 无论是“不合法”也好,还是“没找到”也罢,这两种 Nginx 变

Nginx 变量漫谈(二)

关于 Nginx 变量的另一个常见误区是认为变量容器的生命期,是与 location 配置块绑定的.其实不然.我们来看一个涉及“内部跳转”的例子:     server {        listen 8080;         location /foo {            set $a hello;            echo_exec /bar;        }         location /bar {            echo "a = [$a]";  

nginx变量(日志)

nginx变量(日志) HTTP请求变量 - arg_PARAMETER.http_HEADER.sent_http_HEADER 它是指http请求中的变量,举例: 修改/etc/nginx/nginx.conf 访问页面 内置变量 - ngnix内置的 http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format

Nginx 变量漫谈(六)

Nginx 内建变量用在“子请求”的上下文中时,其行为也会变得有些微妙. 前面在 (三) 中我们已经知道,许多内建变量都不是简单的“存放值的容器”,它们一般会通过注册“存取处理程序”来表现得与众不同,而它们即使有存放值的容器,也只是用于缓存“存取处理程序”的计算结果.我们之前讨论过的 $args 变量正是通过它的“取处理程序”来返回当前请求的 URL 参数串.因为当前请求也可以是“子请求”,所以在“子请求”中读取 $args,其“取处理程序”会很自然地返回当前“子请求”的参数串.我们来看这样的一

一直想测试的NGINX变量输出,最于有办法了。

参考URL: http://blog.ailms.me/2013/08/04/nginx-server_name-and-host-difference.html 要是可能在正则测试及REWRITE就更完美啦. 我要在这方面更进一步看看.. 下面访问 http://ailms.me/no-such.html?a=1&b=2

Nginx系列教程之四:Nginx常用变量汇总及测试

Nginx系列教程之:Nginx内置变量的收集及使用 前言:     各位小伙伴,前两天忙着测试openstack Icehouse,撰写openstack技术文档,导致nginx剩下的几篇博文没来得及整理,你是不是等着急啦?哈哈,抱歉,今天继续来聊一聊nginx常用的内置变量及其相关的使用. Nginx的变量在nginx的使用中还是占了一定的重要性,尤其是在日志和rewrite中,必须对各种变量的含义有所了解,才能组合出适合自己的日志格式和更高级的rewrite规则.其次了解nginx的变量含

Nginx核心模块内置变量

本文根据Nginx官网整理了Nginx的ngx_http_core_module模块的内置变量,可与Apache做对比参考.随后做了一次测试观察各变量的值,并附上测试结果. 1.变量列表 $arg_name    请求行中参数name的值. $args    请求行中的所有参数. $binary_remote_addr    客户端地址的二进制形式. $body_bytes_sent    发送给客户端的字节数,不包含响应头的内容,与Apache的mod_log_config模块中的%B兼容.