要实现一个随时间周期动态调度请求的功能,简单查了下都说内置变量没有时间戳,$time_local变量因为格式问题用起来不方便,都推荐用tengine了。又仔细看了下,发现是有一个$msec时间戳的,结合rewrite $set指令,很方便实现功能。
一个例子: nginx.conf
location ~ test {
set $doRewrite "mark1";
#每隔5秒
if ($msec ~ "\d{9}[0-4]\.\d+$") {
set $doRewrite "mark2";
rewrite ^(.*)$ /req2 break;
}
rewrite ^(.*)$ /req1 break;
}
在把$doRewrite加到log_format中,就能在日志中看到调度处理情况了。