跳转至

T1K 文档

长亭科技推出的 T1K 模块,能够为所有基于 Nginx(含 Nginx Plus)的代理服务提供 WAF/API 安全加固。

与我们使用 Lua 语言开发的 Lua-Resty-T1K 相比,C 语言打造的 T1K 模块不仅提供了更出色的性能,还具备独有的响应检测功能。

请求检测

请求检测相关配置均以 t1k_ 开头。

t1k_intercept

Syntax:  t1k_intercept uri | off;
Default: t1k_intercept off;
Context: http, server, location

将请求发送到 uri 处进行检测,uri 是位于同 server 内的一个 location

t1k_error_page

Syntax:  t1k_error_page status_code uri;
Default: t1k_error_page 403 default;
Context: http, server, location

设置请求被拦截时的状态码与返回内容。

status_code 需满足 200 <= status_code <= 599

uri 为同 server 内的一个 (named) location

t1k_pass

Syntax:  t1k_pass uri;
Default: -
Context: location

将请求发送到给定检测服务,uri 为同 server 内的一个 (named) location

t1k_bind

Syntax:  t1k_bind address [transparent] | off;
Default: -
Context: http, server, location

将请求发送到给定检测服务时,可以指定本地地址。

参考 [proxy_bind](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_bind)

t1k_body_size

Syntax:  t1k_body_size size;
Default: t1k_body_size 0;
Context: http, server, location

限制发送请求体的大小,0 为不限制大小。

t1k_buffer_size

Syntax:  t1k_buffer_size size;
Default: -;
Context: http, server, location

修改从检测服务读取请求检测结果的缓存区大小,默认为系统页大小。

t1k_connect_timeout

Syntax:  t1k_connect_timeout time;
Default: t1k_connect_timeout 10s;
Context: http, server, location

请求检测连接检测服务超时时间。

t1k_send_timeout

Syntax:  t1k_send_timeout time;
Default: t1k_send_timeout 10s;
Context: http, server, location

请求检测单次发送数据到检测服务的超时时间。

t1k_read_timeout

Syntax:  t1k_read_timeout time;
Default: t1k_read_timeout 10s;
Context: http, server, location

请求检测单次读取检测服务返回数据的超时时间。

t1k_next_upstream

Syntax:  t1k_next_upstream error | timeout | invalid_response | off;
Default: t1k_next_upstream error timeout;
Context: http, server, location

请求检测失败行为,配置参考 [proxy_next_upstream](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream)

响应检测

响应检测相关配置均以 tx_ 开头。

tx_intercept

Syntax:  tx_intercept uri | off;
Default: tx_intercept off;
Context: http, server, location

将响应发送到 uri 处进行检测,uri 是位于同 server 内的一个 location

tx_error_page

Syntax:  tx_error_page status_code uri;
Default: tx_error_page 403 default;
Context: http, server, location

设置响应被拦截时的状态码与返回内容。

status_code 需满足 200 <= status_code <= 599

uri 为同 server 内的一个 (named) location

tx_pass

Syntax:  tx_pass uri;
Default: -
Context: location

将响应发送到给定检测服务,uri 为同 server 内的一个 (named) location

tx_bind

Syntax:  tx_bind address [transparent] | off;
Default: -
Context: http, server, location

将响应发送到给定检测服务时,可以指定本地地址。

参考 [proxy_bind](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_bind)

tx_body_size

Syntax:  tx_body_size size;
Default: tx_body_size 4k;
Context: http, server, location

限制发送响应体的大小,0 为不限制大小。

tx_buffer_size

Syntax:  tx_buffer_size size;
Default: -;
Context: http, server, location

修改从检测服务读取响应检测结果的缓存区大小,默认为系统页大小。

tx_connect_timeout

Syntax:  tx_connect_timeout time;
Default: tx_connect_timeout 10s;
Context: http, server, location

响应检测连接检测服务超时时间。

tx_send_timeout

Syntax:  tx_send_timeout time;
Default: tx_send_timeout 10s;
Context: http, server, location

响应检测单次发送数据到检测服务的超时时间。

tx_read_timeout

Syntax:  tx_read_timeout time;
Default: tx_read_timeout 10s;
Context: http, server, location

响应检测单次读取检测服务返回数据的超时时间。

tx_next_upstream

Syntax:  tx_next_upstream error | timeout | invalid_response | off;
Default: tx_next_upstream error timeout;
Context: http, server, location

响应检测失败行为,配置参考 [proxy_next_upstream](https://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream)

响应修改

t1k_extra_header

Syntax:  t1k_extra_header [on|off];
Default: t1k_extra_header off;
Context: http, server, location

是否允许插入额外的请求头。

t1k_extra_body

Syntax:  t1k_extra_body [on|off];
Default: t1k_extra_body off;
Context: http, server, location

是否允许插入额外的请求体。

t1k_extra_body_types

Syntax:  t1k_extra_body_types { ... };
Default: t1k_extra_body_types text/html;
Context: http, server, location

允许插入额外的请求体的类型。

杂项

t1k_ulog

Syntax:  t1k_ulog [number|off];
Default: t1k_ulog off;
Context: http, server, location

是否发送 Access Log 相关数据。

t1k_stat

Syntax:  t1k_stat [number|off];
Default: t1k_stat off;
Context: http, server, location

是否发送检测模块性能统计数据。

t1k_src_ip

Syntax:  t1k_src_ip value;
Default: -
Context: http, server, location

设置发送给检测服务的请求源 IP,value 可以为字符串或变量。

t1k_src_port

Syntax:  t1k_src_port value;
Default: -
Context: http, server, location

设置发送给检测服务的请求源端口,value 可以为字符串或变量。

t1k_dst_ip

Syntax:  t1k_dst_ip value;
Default: -
Context: http, server, location

设置发送给检测服务的请求目标 IP,value 可以为字符串或变量。

t1k_dst_port

Syntax:  t1k_dst_port value;
Default: -
Context: http, server, location

设置发送给检测服务的请求目标端口,value 可以为字符串或变量。

foreach_server

Syntax:  foreach_server { ... };
Default: -
Context: http

向每个已出现server 中插入指令。

已出现server 是指出现在该指令之前的、已经被解析的 server 配置。

因此一般该指令的使用是在所有要防护的server配置块的最后,并且保证该指令前面一定要有 server 配置。

推荐使用 foreach_server_include

foreach_server_include

Syntax:  foreach_server_include file;
Default: -
Context: http

向每个已出现server 中插入指令。

已出现server 是指出现在该指令之前的、已经被解析的 server 配置。