我正在尝试这样做:
map $request_uri $php_timeout {
default 60s;
"~^/slow/process/(?:1|two|three)" 120s;
}
...
fastcgi_read_timeout $php_timeout;
但nignx -t
出现错误:
nginx:[emerg] /etc/nginx/ 中的“fastcgi_read_timeout”指令值无效……
这难道根本不可能吗?文档不要说它不是(或者它是)。
注意:如果不清楚,我有几个 URL 最好通过一组需要不同超时时间的正则表达式测试来描述。我可以为所有这些 URL 编写单独的位置块,但这样会很混乱。
答案1
fastcgi_read_timeout
不能包含变量。可以使用变量的指令会被标记。
例如fastcgi_param
:
[…] 该值可以包含文本,变量,以及它们的组合。