【nginx】十五、nginx高阶之openresty内置变量

  • 时间:2018-06-19 22:35 作者:老顾聊技术 来源:老顾聊技术 阅读:215
  • 扫一扫,手机访问
摘要:openresty中包含很多的内置变量,方便开发人员获取相关的参数值,这篇文章我们详情一下openresty提供了哪些变量。名称说明$arg_name请求中的name参数$args请求中的参数$binary_remote_addr远程地址的二进制表示$body_bytes_sent已发送的消息体字节

openresty中包含很多的内置变量,方便开发人员获取相关的参数值,这篇文章我们详情一下openresty提供了哪些变量。

名称

说明

$arg_name

请求中的name参数

$args

请求中的参数

$binary_remote_addr

远程地址的二进制表示

$body_bytes_sent

已发送的消息体字节数

$content_length

HTTP请求信息里的"Content-Length"

$content_type

请求信息里的"Content-Type"

$document_root

针对当前请求的根路径设置值

$document_uri

与$uri相同; 比方 /test2/test.php

$host

请求信息中的"Host",假如请求中没有Host行,则等于设置的服务器名

$hostname

机器名用 gethostname系统调使用的值

$http_cookie

cookie 信息

$http_referer

引使用地址

$http_user_agent

用户端代理商信息

$http_via

最后一个访问服务器的Ip地址。

$http_x_forwarded_for

相当于网络访问路径

$is_args

假如请求行带有参数,返回“?”,否则返回空字符串

$limit_rate

对连接速率的限制

$nginx_version

当前运行的nginx版本号

$pid

worker进程的PID

$query_string

与$args相同

$realpath_root

按root指令或者alias指令算出的当前请求的绝对路径。其中的符号链接都会解析成真是文件路径

$remote_addr

用户端IP地址

$remote_port

用户端端口号

$remote_user

用户端使用户名,认证使用

$request

使用户请求

$request_body

这个变量(0.7.58+)包含请求的主要信息。在用proxy_pass或者fastcgi_pass指令的location中比较有意义

$request_body_file

用户端请求主体信息的临时文件名

$request_completion

假如请求成功,设为"OK";假如请求未完成或者者不是一系列请求中最后一部分则设为空

$request_filename

当前请求的文件路径名,比方/opt/nginx/www/test.php

$request_method

请求的方法,比方"GET"、"POST"等

$request_uri

请求的URI,带参数; 比方http://localhost:88/test1/

$scheme

所使用的协议,比方http或者者是https

$server_addr

服务器地址,假如没有使用listen指明服务器地址,用这个变量将发起一次系统调使用以获得地址(造成资源白费)

$server_name

请求到达的服务器名

$server_port

请求到达的服务器端口号

$server_protocol

请求的协议版本,"HTTP/1.0"或者"HTTP/1.1"

$uri

请求的URI,可可以和最初的值有不同,比方经过重定向之类的

编辑nginx.conf配置文件,测试少量常使用的变量

$uri变量

此变量是返回请求的uri地址

location /test_url {

echo "url:$uri";

}

重启nginx,访问

【nginx】十五、nginx高阶之openresty内置变量

$args变量

参数的集合

location /test_url {

echo "url:$uri----args:$args";

}

【nginx】十五、nginx高阶之openresty内置变量

$arg_name变量

指定哪个参数名,返回值

location /test_url {

echo "url:$uri----args:$args--------arg_name:$arg_name";

}

【nginx】十五、nginx高阶之openresty内置变量

说明一下,$arg_name表示取名为name的参数,假如想取其余名称的参数能对应的取该参数名

location /test_url {

echo "url:$uri --- args:$args --- arg_name:$arg_name
";

echo "arg_user:$arg_user --- arg_age:$arg_age
";

echo "arg_test:$arg_test";

}

【nginx】十五、nginx高阶之openresty内置变量

test参数名不存在,则为空。

自己设置变量

location /test_def {

set $name "rainbow";

echo $name;

}

【nginx】十五、nginx高阶之openresty内置变量

set 设置的变量 为局部变量,其余请求无法获取此$name的值

location /test_def {

set $name "rainbow";

echo_exec /test_def2; ##内部跳转,能传递变量

}

location /test_def2 {

echo $name;

}

其余的变量大家能自行尝试。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】web前端开发需要学习哪些技术(2019-09-17 18:00)
【系统环境|】学习web前端开发是正确的选择(2019-09-15 16:55)
【系统环境|】干货整理!零基础html5网站开发学习步骤方法(保存不后悔)(2019-09-10 16:27)
【系统环境|】「前端入门」前端基本概念(2019-09-07 21:36)
【系统环境|】小白入门学习web前端,这些干货不能少(2019-09-05 20:59)
【系统环境|】不是计算机专业,哪个专业更适合学习web前端(2019-09-03 20:31)
【系统环境|】入行web前端开发可以做什么工作(2019-09-02 20:51)
【系统环境|】什么是Web前端呢?为什么说web前端开发人员的薪资高、前景好呢?(2019-08-31 20:55)
【系统环境|】2019年Web前端开发的8个趋势,你知道几个?(2019-08-29 16:23)
【系统环境|】学习web前端,掌握这些,才有底气跟面试官提薪资(2019-08-28 15:23)
手机二维码手机访问领取大礼包
返回顶部