Skip to content

桶大小设置为 5,同一个用户的请求有很多个时,把前 5 个请求放到桶内,其它请求

nginx
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

    server {
        listen       80;
        server_name  localhost;

        location / {
            # burst=5 表示桶的容量为 5,最多只能同时处理 5 个不同用户的请求,这 5 个
            # 用户 1s 内可能会发送多个请求,除发送的第 1 个请求外其余都会在队列中等待,
            # 只有当某一个用户的请求都处理完后才能处理其它用户的请求
            # nodelay 表示当桶满时对于其它用户的请求直接丢弃
            limit_req zone=one burst=5 nodelay;
            root html;
            index index.html;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}