【nginx】十五、nginx高阶之openresty内置变量
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,访问
$args变量
参数的集合
location /test_url {
echo “url:$uri—-args:$args”;
}
$arg_name变量
指定哪个参数名,返回值
location /test_url {
echo “url:$uri—-args:$args——–arg_name:$arg_name”;
}
说明一下,$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”;
}
test参数名不存在,则为空。
自己设置变量
location /test_def {
set $name “rainbow”;
echo $name;
}
set 设置的变量 为局部变量,其余请求无法获取此$name的值
location /test_def {
set $name “rainbow”;
echo_exec /test_def2; ##内部跳转,能传递变量
}
location /test_def2 {
echo $name;
}
其余的变量大家能自行尝试。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 【nginx】十五、nginx高阶之openresty内置变量