سلام 
خیلی از دوستان به دنبال روشی هستند که در nginx اقدام به محدود کردن سرعت دانلود کاربران کنند یا حتی تعداد کانکشن ها از یک آی پی را محدود کنند و از حمله DoS / DDoS تا حدی جلوگیری کنند.
با ماژول ngx_http_limit_req می توان محدودیت هایی روی اتصالات (Connections) و درخواست ها (Requests) کاربران اعمال کرد.
سناریو اول: محدود سازی سرعت کاربران به ۱ مگابایت بر ثانیه
قبل از شروع بلاک Server یعنی بلاک Http مقدار زیر را تعریف کنید.
کد:
limit_req_zone $binary_remote_addr zone=JZ:10m ;
در VirtualHost (بلاک Server یا Location) بصورت زیر عمل کنید:
سناریو دوم: محدود سازی سرعت کاربران به ۱ مگابایت بر ثانیه پس دانلود ۱۰۰ مگابایت فایل و محدود سازی تعداد کانکشن به ۴ عدد
قبل از شروع بلاک Server یعنی بلاک Http مقدار زیر را تعریف کنید.
کد:
limit_req_zone $binary_remote_addr zone=JZ:10m ;
در VirtualHost (بلاک Server یا Location) بصورت زیر عمل کنید:
کد:
limit_rate_after 100m;
limit_conn JZ 4;
limit_rate 256k;
یک نمونه از Config فایل هایی که برای محدود سازی سرعت دانلود در یک سایت استفاده کردم را به اشتراک میگذارم.
http://pastebin.com/s596hduW
توصیه: حتما پیشنهاد می کنم با Directive های اصلی Nginx آشنا شوید. با Block ها مثل Server و Location و HTTP همینطور.