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
配置。