OpenResty-ngx.var变量
测试方式
将测试写在tmp.lua
中,用content_by_lua_file
指令导入即可
server {listen 80;server_name localhost;location / {stub_status on;default_type text/html;content_by_lua_file /usr/local/openresty/lualib/luatest/tmp.lua;}}
测试的时候将命令放入tmp.lua
即可,如下
ngx.say(ngx.var.request_method)
之后重新加载openresty
并刷新网页就可以看到结果
openresty -c ../myconf/nginx.conf -s reload
OpenResty-ngx.var变量
$arg_name
请求中的的参数名,即“?”后面的arg_name=arg_value形式的arg_name$args
请求中的参数值
$binary_remote_addr
客户端地址的二进制形式, 固定长度为4个字节
$body_bytes_sent
传输给客户端的字节数,响应头不计算在内;这个变量和Apache的mod_log_config模块中的“%B”参数保持兼容
$bytes_sent
传输给客户端的字节数 (1.3.8, 1.2.5)
$connection
TCP连接的序列号 (1.3.8, 1.2.5)
$connection_requests
TCP连接当前的请求数量 (1.3.8, 1.2.5)
$content_length
“Content-Length” 请求头字段
$content_type
“Content-Type” 请求头字段
$cookie_name
cookie名称
$document_root
当前请求的文档根目录或别名
$document_uri
同 $uri
$host
优先级如下:HTTP请求行的主机名>”HOST”请求头字段>符合请求的服务器名
ngx.say("ngx.var.host:"..ngx.var.host)
$hostname
主机名
httpname匹配任意请求头字段;变量名中的后半部分“name”可以替换成任意请求头字段,如在配置文件中需要获取http请求头:“Accept−Language”,那么将“-”替换为下划线,大写字母替换为小写,形如:http_name 匹配任意请求头字段; 变量名中的后半部分“name”可以替换成任意请求头字段,如在配置文件中需要获取http请求头:“Accept-Language”,那么将“-”替换为下划线,大写字母替换为小写,形如:httpname匹配任意请求头字段;变量名中的后半部分“name”可以替换成任意请求头字段,如在配置文件中需要获取http请求头:“Accept−Language”,那么将“-”替换为下划线,大写字母替换为小写,形如:http_accept_language即可。
$https
如果开启了SSL安全模式,值为“on”,否则为空字符串。
$is_args
如果请求中有参数,值为“?”,否则为空字符串。
$limit_rate
用于设置响应的速度限制,详见 limit_rate。
$msec
当前的Unix时间戳 (1.3.9, 1.2.6)
$nginx_version
nginx版本
ngx.say("ngx.var.nginx_version:"..ngx.var.nginx_version)
$pid
工作进程的PID
ngx.say("ngx.var.pid:"..ngx.var.pid)
$pipe
如果请求来自管道通信,值为“p”,否则为“.” (1.3.12, 1.2.7)
$proxy_protocol_addr
获取代理访问服务器的客户端地址,如果是直接访问,该值为空字符串。(1.5.12)
$query_string
同 $args
$realpath_root
当前请求的文档根目录或别名的真实路径,会将所有符号连接转换为真实路径。
$remote_addr
客户端地址$remote_port
客户端端口$remote_user
用于HTTP基础认证服务的用户名
测试
ngx.say("ngx.var.remote_port:"..ngx.var.remote_port)
ngx.say("ngx.var.remote_addr:"..ngx.var.remote_addr)
结果就是访问nginx服务器的本机的ip和端口号
ngx.var.remote_port:56219
ngx.var.remote_addr:192.168.x0.1
$request
代表客户端的请求地址
$request_body
客户端的请求主体
此变量可在location中使用,将请求主体通过proxy_pass, fastcgi_pass, uwsgi_pass, 和 scgi_pass传递给下一级的代理服务器。
$request_body_file
将客户端请求主体保存在临时文件中。文件处理结束后,此文件需删除。如果需要之一开启此功能,需要设置client_body_in_file_only。如果将次文件传递给后端的代理服务器,需要禁用request body,即设置proxy_pass_request_body off,fastcgi_pass_request_body off, uwsgi_pass_request_body off, or scgi_pass_request_body off 。
$request_completion
如果请求成功,值为”OK”,如果请求未完成或者请求不是一个范围请求的最后一部分,则为空。
$request_filename
当前连接请求的文件路径,由root或alias指令与URI请求生成。
$request_length
请求的长度 (包括请求的地址, http请求头和请求主体) (1.3.12, 1.2.7)
$request_method
HTTP请求方法,通常为“GET”或“POST”
$request_time
处理客户端请求使用的时间 (1.3.9, 1.2.6); 从读取客户端的第一个字节开始计时。
requesturi这个变量等于包含一些客户端请求参数的原始URI,它无法修改,请查看request_uri 这个变量等于包含一些客户端请求参数的原始URI,它无法修改,请查看requesturi这个变量等于包含一些客户端请求参数的原始URI,它无法修改,请查看uri更改或重写URI,不包含主机名,例如:”/cnphp/test.php?arg=freemouse”。
$scheme
请求使用的Web协议, “http” 或 “https”
senthttpname可以设置任意http响应头字段;变量名中的后半部分“name”可以替换成任意响应头字段,如需要设置响应头Content−length,那么将“-”替换为下划线,大写字母替换为小写,形如:sent_http_name 可以设置任意http响应头字段; 变量名中的后半部分“name”可以替换成任意响应头字段,如需要设置响应头Content-length,那么将“-”替换为下划线,大写字母替换为小写,形如:senthttpname可以设置任意http响应头字段;变量名中的后半部分“name”可以替换成任意响应头字段,如需要设置响应头Content−length,那么将“-”替换为下划线,大写字母替换为小写,形如:sent_http_content_length 4096即可。
nginx服务器相关信息查询
nginx是个http服务器,如果想知道服务器相关的信息,就可以查以下内容
$server_addr
服务器端地址,需要注意的是:为了避免访问linux系统内核,应将ip地址提前设置在配置文件中。
$server_name
服务器名,www.cnphp.info$server_port
服务器端口$server_protocol
服务器的HTTP版本, 通常为 “HTTP/1.0” 或 “HTTP/1.1”
测试
ngx.say("ngx.var.server_addr:"..ngx.var.server_addr)
ngx.say("ngx.var.server_name:"..ngx.var.server_name)
ngx.say("ngx.var.server_port:"..ngx.var.server_port)
ngx.say("ngx.var.server_protocol:"..ngx.var.server_protocol)
结果
ngx.var.server_addr:192.168.xx.101
ngx.var.server_name:localhost
ngx.var.server_port:80
ngx.var.server_protocol:HTTP/1.1
$status
HTTP响应代码 (1.3.2, 1.2.2)
$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space
客户端TCP连接的具体信息
$time_iso8601
服务器时间的ISO 8610格式 (1.3.12, 1.2.7)
$time_local
服务器时间(LOG Format 格式) (1.3.12, 1.2.7)
uri请求中的当前URI(不带请求参数,参数位于uri 请求中的当前URI(不带请求参数,参数位于uri请求中的当前URI(不带请求参数,参数位于args),可以不同于浏览器传递的requesturi的值,它可以通过内部重定向,或者使用index指令进行修改,request_uri的值,它可以通过内部重定向,或者使用index指令进行修改,requesturi的值,它可以通过内部重定向,或者使用index指令进行修改,uri不包含主机名,如”/foo/bar.html”。
总结
- 就是在
ngx.var
后面跟上需要查询的信息就可以,关键是知道每个变量的意思是什么
OpenResty-ngx.var变量相关推荐
- ngx.var与ngx.ctx的区别
ngx.var ngx.var 需预定义方可使用, 一般都写在 ngx 或 openresty 的conf 内 ngx.var: 在conf内可以使用set 方式创建变量: ngx.var 可以定义在 ...
- nginx变量ngx.var
ngx.var 是获取 Nginx 的变量,类型是字符串或nil,需要经历字符串 hash.hash 表查找等过程. ngx.ctx 仅仅是一个 Lua table 而已,它的引用存放在 ngx_lu ...
- nginx的 ngx.var ngx.ctx ngx.req
ngx.var 是获取 Nginx 的变量,需要经历字符串 hash.hash 表查找等过程 ngx.ctx 仅仅是一个 Lua table 而已,它的引用存放在 ngx_lua 的模块上下文(ctx ...
- openresty 内置变量
openresty 内置变量 官网:http://nginx.org/en/docs/varindex.html 常用内置变量 openresty 获取nginx的内置变量 nginx 内置变量:$a ...
- javascript var变量删除
var有三种声明的情形: var声明的全局变量 var在函数范围内声明的局部变量 eval中声明的全局变量. 首先, 1.2种情形var声明的变量是无法删除的. 尽管var声明的全局变量是属于wind ...
- openresty读取环境变量
全局配置中定义env events{... }env BPM_SERVICE_HOST; env BPM_SERVICE_PORT; service中获取 set_by_lua $bpm_host ' ...
- JavaScript里的var变量
最近学了一点HTML和JavaScript. 在JavaScript里面有var变量,而且好像只有var变量.换句话说var就是个万精油,他没有确定的类型,他的类型取决于赋值给他的变量的类型.例如: ...
- DAX学习-同一表上的多层嵌套上下文EARLIER当前行与VAR变量
此文档为学习笔记,原课程为孙兴华老师的DAX课程,详见:https://www.bilibili.com/video/BV1YE411E7p3/?p=16&spm_id_from=pageDr ...
- python抓取script VAR变量
因工作需要对一个脚本里的var变量进行提取,看了很多教程,安装了一堆的库lxml.bs4.json,后来发现都没有用,最基本的re和requests就够了,先上var所在script 内容 <s ...
最新文章
- VMware虚拟机安装之后,打开时找不到启动Centos的界面
- Deseq2的理论基础
- Loopback測试软件AX1用户手冊 V3.1
- ps -ef 两个pid_ps -ef 与 aux
- linux系统汇总的qt,QT 编程总结_Linux编程_Linux公社-Linux系统门户网站
- File转换成MultiPartFile
- 不要再闲玩啦!博主手把手带你两个月入门自然语言处理,还不赶紧碗里来!...
- Linux 进程热升级 共享库的动态替换
- 蚂蚁财富号:大、小型基金公司的电商业务对比
- android中横向滑动功能,Android开发基于ViewPager+GridView实现仿大众点评横向滑动功能...
- python定期自动运行_令人惊叹的8个Python新手工具
- mysql安装可视化界面_MySQL的下载、安装配置、连接可视化界面。
- JavaCV入门教程目录(JavaCV从入门到实战,JavaCV指南手册,免费JavaCV教程)
- 机房收费系统可行性研究报告
- MATLAB读txt
- 超级计算机计算峰值,世界运算最快计算机,中国神威·太湖之光(其峰值计算速度达每秒1...
- [Codeup]1814 问题 A: 剩下的树
- Android开发学习—指纹识别系统的原理与使用
- 简单几行代码带你爬取王者荣耀皮肤
- ES-07-ElasticSearch常用插件
热门文章
- python学习_Python学习资料整理
- 运算符的优先级及有哪些运算符
- python小爬虫—获取学校教务处成绩
- vc浏览器_自主创业项目推荐,晨兴资本刘芹:我的市场非共识+超配投资原则VC洞见...
- composer全局 linux_Linux下全局安装composer方法
- python is beautiful_python自动化报告BeautifulReport用法
- windows找不到文件gpedit.msc_极简技术|电脑文件全搜索,没有找不到的东西
- html 目录生成器,Tocify:动态节点目录菜单生成器_html/css_WEB-ITnose
- 版本差异_终极版!三星Note20系列在真机再曝光,不同版本差异在这几点
- c语言libjpeg处理图像,解决使用 libjpeg 保存图片时因磁盘写入失败导致程序退出的有关问题...