انجمن تخصصی ایران سرور

نسخه‌ی کامل: آموزش محدود کردن سرعت سرور برای دانلود ...
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام خدمت دوستان عزیزم.
این آموزش رو امروز بهش بر خوردم گفتم که برای شما هم بذارم. چون فک کنم به درد بعضی دوستان بخوره [عکس: 3.gif]


-----------------------------------------------------------------------------------------------

در این آموزش به شما نشان داده میشه که چگونه در سیستم apache2 با توسط به mod_cband این کار رو انجام بدید.
خوب اول میریم سراغ نصب برنامه.

نکته : دقت داشته باشید که برای کامپایل کردن این برنامه شما احتیج به apxs دارید. که میتوانید به این گونه آن را نصب کنین.
کد PHP:

کد:
yum install httpd-devel 
در مرحله بدی دانلود mod_cband و شروع کامپایل. که به صورت زیر انجام میشه:
کد PHP:

کد:
cd /tmp

wget http://cband.linux.pl/download/mod-cband-0.9.7.5.tgz

tar xzvf mod-cband-0.9.7.5.tgz

cd mod-cband-0.9.7.5

./configure

make

make install 

بعد از اتمام کار. باید رول مورد نظر رو در آپاچی کانفیگ اضافخ کنید.
کد PHP:

کد:
vi /etc/httpd/conf/httpd.conf 
این خط را اضافه کنید ...

LoadModule cband_module /usr/lib/httpd/modules/mod_cband.so
و در آخر هم سرویس آپاچی رو ری استارت میکنیم . و نصب برنامه به پایان رسید. [عکس: 3.gif]
کد PHP:

کد:
/etc/init.d/httpd restart 


--------------------------------------------------------------------------------
حالا باید با کمی درایت و درک خوب از سرویس آپاچی و آشنای با اعمال میشه کار کانفیگ رو شرو کنیم .
در این کانفیگی که در زیر مشاهده میکنید، سعی شده که سایتی با آدرس www.example.com که روی آی پی 1.2.3.4 قرار داره و دایرکتوری این ساید در آدرس /var/www قرار داره، یک لیمیت قرار بدیم.

حالا اگر که بدانید که قطعا هم میدانید برای وجود داشتن یه همچین سایتی با مشخصات بالا باید مشخصات زیر در فایل کانفیگ آپاچی قرار داشته باشه .
کد PHP:

کد:
<VirtualHost 1.2.3.4>

  ServerName www.example.com

  ServerAdmin webmaster@example.com

  DocumentRoot /var/www

</VirtualHost> 
دقت داشته باشید که سرور نیم هتمن باید ولید باشه.
خوب حالا میریم سراغ ادامه کانفیگ برنامه .
کد PHP:

کد:
vi /etc/httpd/conf/httpd.conf 
حالا این دستورات رو اضافه کنین ..
کد PHP:

کد:
CBandScoreFlushPeriod 1

CBandRandomPulse On 
حالا سعی داریم که یکی از فولدر های درون هاست scoreboard رو لیمیت بدیم. به این صورت خط ها را در کانیگ آپاچ تغییر میدیم. ( در مثال های زیر اکانت اجازه 100 مگ در ماه رو داره )

مثال شماره 1 : فرض میکنیم که میخواهیم سایت مورد نظر، سرعت دانلود به 128kbps تغییر کندو 5 requests در هر ثانیه را ساپورت کنه و فقط 15 open connections را اجازه بده :
کد PHP:

کد:
<VirtualHost 1.2.3.4>

  ServerName www.example.com

  ServerAdmin webmaster@example.com

  DocumentRoot /var/www

  CBandLimit 100M

  CBandExceededSpeed 128 5 15

  CBandScoreboard /var/www/scoreboard

  CBandPeriod 4W

</VirtualHost> 
CBandPeriod به شما نشان میده که بعد از چخ مدت زمانی موارد لیمیت یه کاربر به حالت اولیه برسه.

مثال شماره 2 : این مقال هم شبیه مقال قبل میمونه ولی با این تفاوت که ما لیمیتی در سرعت قرار نمیدیم. اگر که تعداد آنلاین ها یا افراد درون سایت زیاد بشه ارور 503 نشون داده میشه .
کد PHP:

کد:
<VirtualHost 1.2.3.4>

  ServerName www.example.com

  ServerAdmin webmaster@example.com

  DocumentRoot /var/www

  CBandLimit 100M

  CBandScoreboard /var/www/scoreboard

  CBandPeriod 4W

</VirtualHost> 

اگر هم خواستید که اگر کانکتها بالا رفت طرف ریدایرکت بشه خط زیر هم اضابه کنین .

کد PHP:

کد:
CBandExceededURL http://www.redirect.com/traffic_exceeded.html 

توجه: CBandExceededSpeed و CBandExceededURL با هم تداخل دارند و اجازه استفاده آنها در یک مرحله یک سایت داده نمیشود .

حالا آپاچ رو ری استارت کنیدو به ادامه بحث توجه کنین.
کد PHP:

کد:
/etc/init.d/httpd restart 

اگر که خواستید میتونید حتی صفحه گرافیکی مصرف یوزر یا همان دایرکتئری هم ببینید. برای این کا کافیه که خط های زیر را هم به قسمتی که کانفیگ کردیم اضافه کنید ..

کد PHP:

کد:
 <Location /cband-status>

    SetHandler cband-status

  </Location>

  <Location /cband-status-me>

    SetHandler cband-status-me

  </Location> 
حالا از http://www.example.com/cband-status و http://www.example.com/cband-status-me شما میتونید که تماشا کنید. [عکس: 113.gif]


---------------------------------------------------------------------------------
خب دوستان آموزش تمام شد. فقط در آخر یک سری خورده ریز رو بگم و آنهم مواردی مانند kbps و Mbps و غیره هست ...
کد PHP:

کد:
Transfer speeds:



    * kbps: 1024 bits per second

    * Mbps: 1024*1024 bits per second

    * Gbps: 1024*1024*1024 bits per second

    * The default is kbps.



Transfer quotas:



    * K: 1000 bytes

    * M: 1000*1000 bytes

    * G: 1000*1000*1000 bytes

    * Ki: 1024 bytes

    * Mi: 1024*1024 bytes

    * Gi: 1024*1024*1024 bytes

    * The default is K.



Time periods:



    * S: seconds

    * M: minutes

    * H: hours

    * D: days

    * W: weeks

    * The default is S. 


==========================================
خب دیگه تکمیل شد. ان شاء الله که کمکتون کرده باشه.
اگر که سوالی داشتید در خدمت هستم و از اینجا هم میتونین استفاده کنید http://codee.pl/cband.html
دستتون درد نکنه مرسی مطلب خوب بود
تشکر فراوان یه سوال داشتم  روی سرور میشه فهمید هر ip چقده کلا مثلا یکماه دانلود کرده ؟