[آموزش Nginx] محدود کردن سرعت دانلود کاربران
سلام ;;)
خیلی از دوستان به دنبال روشی هستند که در 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 همینطور.
پاسخ : [آموزش Nginx] محدود کردن سرعت دانلود کاربران
با سلام
این سناریو بسیاروعالی در زمینه هاستینگ هستش.
برای اپلودسنتر و اینکه تعداد دانلود و آپلود کاربر بدون محدودیت انجام بشه سناریوتون چیه؟
اجازه بدین میخوام سناریو رو گسترده تر کنیم.اگه تمایل داشته باشید.
خسته هم نباشید بابت مقاله بسیار خوبتون
پاسخ : [آموزش Nginx] محدود کردن سرعت دانلود کاربران
نقل قول:
نوشته اصلی توسط
IrIsT
با سلام
این سناریو بسیاروعالی در زمینه هاستینگ هستش.
برای اپلودسنتر و اینکه تعداد دانلود و آپلود کاربر بدون محدودیت انجام بشه سناریوتون چیه؟
اجازه بدین میخوام سناریو رو گسترده تر کنیم.اگه تمایل داشته باشید.
خسته هم نباشید بابت مقاله بسیار خوبتون
راه سادهترش اینه که دوتا سرور داشته باشیم و سرور پریمیوم هم باید کاربر رو بشناسه حتما
پاسخ : [آموزش Nginx] محدود کردن سرعت دانلود کاربران
نقل قول:
نوشته اصلی توسط
Hostline
راه سادهترش اینه که دوتا سرور داشته باشیم و سرور پریمیوم هم باید کاربر رو بشناسه حتما
مرسی داداشم.
خوب یک توضیح بیشتر بده.چطوری این کار انجام میشه.
پاسخ : [آموزش Nginx] محدود کردن سرعت دانلود کاربران
من در مستندات سایت nginx با این ماژول ها آشنایی نسبی پیدا کرده بودم اما در اجرای سناریوهای متفاوت به مشکل بر میخوردم.
بسیار عالی و کاربردی
پاسخ : [آموزش Nginx] محدود کردن سرعت دانلود کاربران
نقل قول:
نوشته اصلی توسط
IrIsT
با سلام
این سناریو بسیاروعالی در زمینه هاستینگ هستش.
برای اپلودسنتر و اینکه تعداد دانلود و آپلود کاربر بدون محدودیت انجام بشه سناریوتون چیه؟
اجازه بدین میخوام سناریو رو گسترده تر کنیم.اگه تمایل داشته باشید.
خسته هم نباشید بابت مقاله بسیار خوبتون
سلام. حتما . خیلی خوبه. اگر دوستان هم موافق باشن داخل پست اول اضافه می کنم.
- - - Updated - - -
نقل قول:
نوشته اصلی توسط
Hostline
راه سادهترش اینه که دوتا سرور داشته باشیم و سرور پریمیوم هم باید کاربر رو بشناسه حتما
البته بدون سرور دوم هم میشه. کافیه شما Limit zone تعریف کنید.
کد:
limit_req_zone $binary_remote_addr zone=FREE:10m ;
و
کد:
limit_req_zone $binary_remote_addr zone=PREMIUM:10m ;
برای free ها سرعت 64k بذارید (مثال) و برای premium ها هر مقداری که مدنظر هست.
پاسخ : [آموزش Nginx] محدود کردن سرعت دانلود کاربران
سلام و درود
به keepalive هم مربوطه؟تاثیری داره؟
همچنین اگه ورنیش رو هم توضیح بدین باهاش که اونم محدودیت میذاره.اونم تاثیر داره؟
به صورت یک مققاله باشهواا توی سایت بذارم
با اجازه استارتر یکم توضیح رو بیشتر کنم
نمونه ای از طریقه استقاده این ماژول
کد:
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; server { location /search/ { limit_req zone=one burst=5; }
که برای پردازش بیشتر پیغامس 503 میده که میتونید مقدار رو افزایش بدین
کد:
limit_req_zone $binary_remote_addr zone=perip:10m rate=1r/s; limit_req_zone $server_name zone=perserver:10m rate=10r/s; server { ... limit_req zone=perip burst=5 nodelay; limit_req zone=perserver burst=10; }
شما مستونید از این ماژول برای جلوگیری از حملات دیداس نیز استفاده کنید
برای توضیحات بیشتر این ماژول از لینک زیروایافده کنید.
http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
با تشکر از استارتر
پاسخ : [آموزش Nginx] محدود کردن سرعت دانلود کاربران
سلام
نقل قول:
قبل از شروع بلاک Server یعنی بلاک Http مقدار زیر را تعریف کنید.
نقل قول:
در VirtualHost (بلاک Server یا Location) بصورت زیر عمل کنید:
دقیقا کجا ؟
پاسخ : [آموزش Nginx] محدود کردن سرعت دانلود کاربران
نقل قول:
نوشته اصلی توسط
dellserver
سلام
دقیقا کجا ؟
سلام.
دقیقا قبل از شروع
جزء context های اصلیه انجین ایکسه
پاسخ : [آموزش Nginx] محدود کردن سرعت دانلود کاربران
نه منظورم اینه دستور ورودش به اون جا رو بگید
متوجه نمیشم بلاک سرور یا بلاک http کجاس واظهتر بفرمائید
ممنون
پاسخ : [آموزش Nginx] محدود کردن سرعت دانلود کاربران
پاسخ : [آموزش Nginx] محدود کردن سرعت دانلود کاربران
نقل قول:
نوشته اصلی توسط
2JZ
داخل فایل کانفیگ هست.
امکانش هست دستور دقیقش بفرمائید ؟
من در مسیر زیر دستوراتی که برای محدود کردن گفته بودید گذاشتم سرور کلا بالا نیومد و http از کار افتاد
nano /etc/ngnix/ngnix.conf
پاسخ : [آموزش Nginx] محدود کردن سرعت دانلود کاربران
چیز ثابتی نیست که دستور دقیق داشته باشه.
ممکنه فایل کانفیگ مربوط به virtual host جاهای مختلفی باشه.
پاسخ : [آموزش Nginx] محدود کردن سرعت دانلود کاربران
ممنون دوست عزیز ظاهرا یا شما هم مثل همه سایت ها این مطلب رو کپی پیست کردیدیا قصد کمک ندارید
موفق باشید
پاسخ : [آموزش Nginx] محدود کردن سرعت دانلود کاربران
نقل قول:
نوشته اصلی توسط
dellserver
ممنون دوست عزیز ظاهرا یا شما هم مثل همه سایت ها این مطلب رو کپی پیست کردیدیا قصد کمک ندارید
موفق باشید
شما در رابطه با ساختار اصلی پیکربندی nginx آشنایی ندارید ، من چی بگم بهتون که کارتون انجام بشه؟