Nginx限速不适用于proxy_pass

3

为什么limit_rate不适用于proxy_pass?在nginx中有以下配置块,但我仍然可以以约4MB / s的速度下载代理文件:

location ~ ^/proxy? {
    resolver 8.8.8.8;
    set $limit_rate  50k;
    limit_rate       50k;
    proxy_limit_rate 50k;
    proxy_buffering off;
    proxy_buffer_size 15m;
    proxy_pass_request_body off;
    proxy_read_timeout 20s;
    proxy_pass  $arg_fwd;
}

系统是Debian 8,使用的是Nginx 1.10.1。除了apt默认安装的模块外,没有安装任何其他额外的模块。

1个回答

4

proxy_buffering off; 和限速功能是互斥的。您需要启用缓冲才能使用限速功能。


1
有关此事的任何文档? - petertc
okwap这很自然。速率限制就像在河上建了一座水坝。建造水坝总是意味着有一个蓄水池,在那里水被存放一段时间。 - VBart
我同意“有关此事的任何文档”- nginx文档根本没有提到这些指令是互斥的,我不知道为什么它们需要是这样。 (回应VBart的观点:您不必拥有水库来限制速率;您只需停止从代理接收字节即可。) - Neilski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接