Nginx http核心模块的内置变量

$uri: 当前请求的uri,不带参数

$request_uri: 请求的uri,带完整的参数

$host: http请求报文中的host首部;如果请求中没有host首部,则以处理此请求中虚拟主机的主机名代替;

$hostname: 运行nginx服务的服务器主机名

$remote_addr: 客户端IP

$remote_port: 客户端的端口

$remote_user: 使用用户认证时,客户端用户输入的用户名

$request_filename:用户请求中的URI经过本地root或者alias转换后映射的本地文件路径。例如:用户请求地址为http://192.168.1.20/a/b/1.html

$request_filename就是/a/b/1.html对应的文件名

$request_method:请求方法,如GET、POST

$server_addr:服务器地址

$server_name: 服务器名称,和服务器的主机名不一样,是server配置中的server_name,一个nginx中可以配置多个server_name

$server_port: 服务器监听的端口

$server_protocal: 服务器向客户端发送响应的协议, 如http/1.1,http/1.0等

$scheme: 在请求中使用scheme,如https://www.baidu.com/中的https

$http_HEADER: 匹配请求报文中指定的HEADER,$http_host匹配请求报文中的host首部

$sent_http_HEADER: 匹配响应报文中指定的HEADER, 例如$http_content_type匹配响应报文中的content-type首部。

$document_root:当前请求映射到的root配置项

原文地址:http://blog.51cto.com/zengestudy/2116034

时间: 2024-11-13 14:27:35

Nginx http核心模块的内置变量的相关文章

Nginx核心模块内置变量

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

nginx的那些内置变量

nginx在配置文件nginx.conf中可以使用很多内置变量,配置如下: location /info { add_header 'Content-Type' 'text/html'; echo "http_user_agent :$http_user_agent <br>"; echo "http_cookie :$http_cookie <br>"; echo "http_user_agent :$http_user_agen

Nginx内置变量以及日志格式变量参数详解

Nginx内置变量以及日志格式变量参数详解 $args #请求中的参数值 $query_string #同 $args $arg_NAME #GET请求中NAME的值 $is_args #如果请求中有参数,值为"?",否则为空字符串 $uri #请求中的当前URI(不带请求参数,参数位于$args),可以不同于浏览器传递的$request_uri的值,它可以通过内部重定向,或者使用index指令进行修改,$uri不包含主机名,如"/foo/bar.html". $d

nginx内置变量

今天在整理nginx的rewrite规则,发现遇到许多关于nginx内置变量的判断,所以此处将nginx的内置变量温习一遍······ nginx支持的所有内置变量: $arg_name 请求中的的参数名,即"?"后面的arg_name=arg_value形式的arg_name $args 请求中的参数值 $binary_remote_addr 客户端地址的二进制形式, 固定长度为4个字节 $body_bytes_sent 传输给客户端的字节数,响应头不计算在内:这个变量和Apache

nginx内置变量 大全

nginx内置变量 内置变量存放在  ngx_http_core_module 模块中,变量的命名方式和apache 服务器变量是一致的.总而言之,这些变量代表着客户端请求头的内容,例如$http_user_agent, $http_cookie, 等等.下面是nginx支持的所有内置变量: $arg_name请求中的的参数名,即"?"后面的arg_name=arg_value形式的arg_name $args请求中的参数值 $binary_remote_addr客户端地址的二进制形式

nginx基础学习第二篇:nginx内置变量的使用

ngx_http_core模块提供的内置变量有很多,常见的有 $uri,用来获取当前请求的uri,不含请求参数. $request_uri,用来获取请求最原始的uri,包含请求参数,且未解码. $request,获取请求方法(GET或者POST).$request_uri.HTTP协议版本. $args,获取当前请求的参数串(即请求中问号后面的部分,如果有的话),未解码的原始值.$args变量是可以改变的,利用set指令即可 set $args a=1&b=2.需要注意的是,绝大部分的内置变量都

自定义nginx访问日志和内置变量使用

自定义nginx访问日志和内置变量使用 安装第三方echo模块后查看内置变量 内置变量 1.$args 用户在浏览器中查找的相关参数(uri中?之后的字段)2.$document_root 站点根目录所在的位置3.$document_uri 去除url中域名部分后所剩下的目录4.$host 所访问的主机5.$http_user_agent 客户端所使用的浏览器6.$http_cookie 客户端的cookie信息7.$limit_rate 客户端的下载速率0表示不限制速度 server { se

使用正则表达式来截取nginx中的内置变量

nginx 中的内置变量都可以通过 if 指令 + 正则表达式来进行截取,截取之后的结果通过正则表达式的分组来进行引用 比如:从请求中传过来的一个名为 ssl_client_s_dn 的变量,它的值是类似 cn=username这样的 我们想要只留下username ,可以这样: if ( $ssl_client_s_dn ~ (CN=([\S\s]*)) ){                 set  $username $2;  } 其中 $2 是指获取正则表达式匹配结果的第二个分组(也就是

nginx 内置变量

内置变量 server { listen 80; server_name cpu.enjoy.com; if ( $http_origin ~ http://(.*).enjoy.com){ set $allow_url $http_origin; } #1 location /var { echo $allow_url; echo '[host]=$host' ; echo '[http_HEADER]=$http_HEADER' ; echo '[remote_addr]=$remote_a