# 内置变量

在书写 nginx.conf 文件的时候不可避免地需要用到一些变量,如$remote_addr可以用来获取客户端 IP 地址。

本模块增加了多个可用的变量。

不能和指令 `if` 共用

详见常见问题与解答

# $waf_log

如果本次请求中防火墙进行了检查则不为空字符串,反之为空字符串。本变量主要用于 access_log 指令,详见 自定义日志格式

# $waf_blocking_log

如果本次请求本被模块拦截则不为空字符串,反之则为空字符串。本变量主要用于 access_log 指令,详见 自定义日志格式

# $waf_blocked

表示本次请求是否被本模块拦截,如果拦截了则其的值为'true',反之则为'false'

# $waf_spend

表示本次检查花费了多少时间(毫秒),保留 5 位小数,舍入规则取决于具体 C 标准库的实现。

# $waf_rule_type

如果本次请求命中黑白名单规则,则其值为触发的规则类型。下面是可能的取值。若没有命中黑白名单规则则其值为''

  • 'CC-DENY'
  • 'WHITE-IPV4'
  • 'WHITE-IPV6'
  • 'BLACK-IPV4'
  • 'BLACK-IPV6'
  • 'WHITE-URL'
  • 'BLACK-URL'
  • 'BLACK-ARGS'
  • 'BLACK-USER-AGENT'
  • 'WHITE-REFERER'
  • 'BLACK-REFERER'
  • 'BLACK-COOKIE'
  • 'BLACK-POST'
  • 'UNDER-ATTACK'
  • 'FAKE-BOT'
  • 'CAPTCHA'

# $waf_rule_details

如果本次请求被本模块拦截,则其值为触发的具体的规则的内容。若没有生效则其值为''

# $waf_rate

一个整数,表示一个统计周期内当前 IP 的访问次数。