有“重”页面需要更多时间加载。 示例页面网址:http://example.com/index.php?task=update&action=map(多个参数)。
我期待以下nginx配置(/etc/nginx/sites-available/default
):
server {
#...
location ~ \.php$ {
set $isMap "";
if ($arg_task = update) { set $isMap 1$isMap; }
if ($arg_action = map) { set $isMap 1$isMap; }
if ($isMap = 11) {
fastcgi_read_timeout 600;
}
}
}
但是我收到了一个错误:
"fastcgi_read_timeout" directive is not allowed here
如何更改特定页面的超时(url有参数)?
答案 0 :(得分:1)
TL; DR:永远不要在if块中使用fastcgi_ *和proxy_ *指令。
为每个fastcgi配置变体创建单独的命名位置并重定向到它
location ~ \.php$ {
...
if(...) {
error_page 418 = @fastcgi_1;
return 418;
}
}
location @fastcgi_1 {
fastcgi_read_timeout 600;
fastcgi_pass 127.0.0.1:9000;
}
您应该阅读http://agentzh.blogspot.ru/2011/03/how-nginx-location-if-works.html了解详情。
好的,您可以看到ngx_proxy模块在嵌套之间的配置继承 地点在这里发挥关键作用,让你相信它的作用 你想要的方式。但是其他模块(比如我的其中一个提到的回声) 早期的电子邮件)可能不会在嵌套位置继承内容处理程序 (事实上,大多数内容处理程序模块,包括上游的, 不)强>