标签搜索

OpenResty

mrui
2025-12-06 / 0 评论 / 1 阅读 / 正在检测是否收录...

OpenResty系统信息

OpenResty在表ngx.conf里提供了六个功能接口,可以获取自身的一些信息:

  • debug:是否算Debug版本
  • prefix:工作目录,即启动时“-p”参数指定的目录
  • nginx_version:大版本号,即内部NGINX的版本号
  • nginx_configure:编译的使用的配置参数
  • subsystem:当前所在的子系统,取值为“http”或“stream”
  • ngx_lua_version:当前所在子系统的版本号

注意: prefix和nginx_configure这两个接口是函数的形式。

接口的示例代码如下:

ngx.say(nginx.config.debug)
ngx.say(nginx.config.prefix())
ngx.say(nginx.config.nginx_version)
ngx.say(nginx.config.nginx_configure())
ngx.say(nginx.config.subsystem())
ngx.say(nginx.config.ngx_lua_version())

OpenResty运行日志

函数ngx.log(log_level)记录罗OpenResty的运行日志,用法类似Lua的标准库函数print,可以接受任意多个参数,记录任意信息。

print()=ngx.NOTICE

ngx.log的第一个参数是日志级别。

  • ngx.STDERR:日志直接打印到标准输出,最高级别的日志
  • ngx.EMERG:发生了紧急情况(emergency),需要立即处理
  • ngx.ALERT:发生了严重错误,可能需要报警给运维系统
  • ngx.CRIT:发生了严重错误(critical)
  • ngx.ERR:普通的错误,业务中发生了意外
  • ngx.WARN:警告信息,业务正常,但可能需要检查警告的来源
  • ngx.NOTICE:提醒信息,仅仅算告知,通常可以忽略
  • ngx.INFO:一般的信息
  • ngx.DEBUG:调试可用的信息,只有debug版本才会启用

业务逻辑关键点INFO或者WARN,捕获error级别的错误信息

OpenResty时间日期

对于Web服务来说,能够随时获取正确的时间与日期是非常重要的。OpenResty为此提供罗很多时间日期相关的函数,可以满足绝大多数场景的应用。

这些时间日期函数不会引发昂贵的系统调用(ngx.updatetime除外),几乎没有成本。所以在应用程序中应对尽量使用它们操作时间而不是使用Lua标准库里的os。

当前时间

ngx.say(ngx.today()) #本地时间,格式是“yyyy-mm-dd”
ngx.say(ngx.localtime()) #本地时间,格式是“yyyy-mm-dd hh:mm:ss”
ngx.say(ngx.utctime())  #utc时间,格式是“yyyy-mm-dd hh:mm:ss”

时间戳

ngx.time
ngx.now

时间戳

0

评论 (0)

取消