limit_upload_rate icon indicating copy to clipboard operation
limit_upload_rate copied to clipboard

没有限制住速度

Open theburn opened this issue 8 years ago • 3 comments

  • 测试版本为:2.1.2和1.5.2版本的Tengine

我用自己写的后端上传服务用nginx做反向代理,然后在 /upload/ 的location中配置了

            limit_upload_rate 500k;  
            limit_upload_rate_after 1m;

但是测试下来,上传速度还是超过了500k。

  • Nginx.conf 如下:
user              nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log;

pid        /var/run/nginx.pid;

events {
    use   epoll;
    worker_connections  1024;
}


http {
    charset utf-8;
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        '$status $body_bytes_sent "$http_referer" '
        '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    keepalive_timeout  65;

    server_tokens off;
    gzip  on;

    client_header_buffer_size    8k;
    large_client_header_buffers  4 4k;


    upstream mysrv {
        server 192.168.149.20:5000;
    }


    limit_conn_zone $binary_remote_addr zone=one:10m;
    limit_req_zone $binary_remote_addr zone=req_one:10m rate=1r/s;

    server {
        listen       80;
        server_name  _;

        access_log  /var/log/nginx/domain_access.log  main; 

    location /upload {
        proxy_pass http://mysrv;
           # limit_conn one 1;
        limit_upload_rate 500k;  
            limit_upload_rate_after 1m;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_connect_timeout 90;
            proxy_send_timeout 90;
            proxy_read_timeout 90;


        }

        location / {
        proxy_pass http://mysrv;

            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_connect_timeout 90;   
            proxy_send_timeout 90;     
            proxy_read_timeout 90;    
            proxy_buffer_size 4k;    
            proxy_buffers 4 32k;    
            proxy_busy_buffers_size 64k; 
            proxy_temp_file_write_size 64k; 
        }

        error_page  404 403           /40x.html;
        location = /40x.html {
            root   /data;
        }

        error_page   500 502 503 504 /50x.html;  
        location = /50x.html {
            root   /data;
        }
        location ~ /\.ht {
            deny all;
        }

    }

}
Shell> ./sbin/nginx  -V 2>&1 | grep limit
configure arguments: --prefix=/root/Tengine/tengine-1.5.2 --add-module=limit_upload_rate
    ngx_http_limit_conn_module (static)
    ngx_http_limit_req_module (static)
    ngx_http_limit_upload_module (static)

theburn avatar Jul 27 '16 05:07 theburn

没有上下文。测试文件大小,测速方式等等。

cfsego avatar Sep 27 '16 07:09 cfsego

我也发限制不了,我的配置 limit_upload_rate 1k; 上传的文件为 >50K -rw-r--r-- 1 lihongbo01 lihongbo01 52437 May 17 05:27 ngx_http.c 然后再上行服务器上运行:sar -n DEV 1 | grep -E 'IFACE|eth0' 发现设置和不设置没有影响;而对于Nginx自带的limit_rate参数的配置则可以正常的起作用

hb-lee avatar Jul 18 '19 08:07 hb-lee

没有上下文。测试文件大小,测速方式等等。 我也发限制不了,我的配置 limit_upload_rate 1k; 上传的文件为 >50K -rw-r--r-- 1 lihongbo01 lihongbo01 52437 May 17 05:27 ngx_http.c 然后再上行服务器上运行:sar -n DEV 1 | grep -E 'IFACE|eth0' 发现设置和不设置没有影响;而对于Nginx自带的limit_rate参数的配置则可以正常的起作用

我是根据patch移入到openresty/1.15.8.1中的

hb-lee avatar Jul 18 '19 08:07 hb-lee