[آموزش Nginx] محدود کردن سرعت دانلود کاربران

Solina

کاربر انجمن پارسه دو
کاربر انجمن پارسه
[آموزش Nginx] محدود کردن سرعت دانلود کاربران
سلام


خیلی از دوستان به دنبال روشی هستند که در nginx اقدام به محدود کردن سرعت دانلود کاربران کنند یا حتی تعداد کانکشن ها از یک آی پی را محدود کنند و از حمله DoS / DDoS تا حدی جلوگیری کنند.

با ماژول ngx_http_limit_req می توان محدودیت هایی روی اتصالات (Connections) و درخواست ها (Requests) کاربران اعمال کرد.


سناریو اول: محدود سازی سرعت کاربران به ۱ مگابایت بر ثانیه
قبل از شروع بلاک Server یعنی بلاک Http مقدار زیر را تعریف کنید.

کد:

limit_req_zone $binary_remote_addr zone=JZ:10m ;
در VirtualHost (بلاک Server یا Location) بصورت زیر عمل کنید:

کد:

limit_rate 1024k;

سناریو دوم: محدود سازی سرعت کاربران به ۱ مگابایت بر ثانیه پس دانلود ۱۰۰ مگابایت فایل و محدود سازی تعداد کانکشن به ۴ عدد

قبل از شروع بلاک 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;


توصیه: حتما پیشنهاد می کنم با Directive های اصلی Nginx آشنا شوید. با Block ها مثل Server و Location و HTTP همینطور.​
 
آخرین ویرایش توسط مدیر:
عقب
بالا