|
LimitIPConn nedir?
Eğer medya (resim, video, müzik) yönünden yoğun apache kaynakları kullanan site sahibi iseniz, aynı anda birçok kullanıcının sunucudan request (istek) göndererek download yapmaları hem bandwidth hemde sunucu kaynakları açısından külfet olacaktır. Shared ve reseller hosting'den bağımsız sunucu hizmeti alıyorsanız LimitIPConn apache modulünü yükleyip, IP başına istek gönderimini limitleyebilirsiniz.
Resmi site: mod_limitipconn.c
Apache configuration dosyasında (httpd.conf) her IP adresine belli bir limit verip bunu klasörlere de uygulayabilirsiniz. Dolayısı ile /videos klasörüne ait tüm download limitlerini örneğin 1 olarak ayarlayıp /images klasörü içindeki resimler için download limitini 5 olarak ayarlayabilirsiniz. Farklı klasörler için farklı limitleme kuralları oluşturabilirsiniz.
Örnek configuration (ayarlama): ExtendedStatus On
# Only needed if the module is compiled as a DSO LoadModule limitipconn_module lib/apache/mod_limitipconn.so AddModule mod_limitipconn.c
<IfModule mod_limitipconn.c> <Location /somewhere> MaxConnPerIP 3 # exempting images from the connection limit is often a good # idea if your web page has lots of inline images, since these # pages often generate a flurry of concurrent image requests NoIPLimit image/* </Location>
<Location /mp3> MaxConnPerIP 1 # In this case, all MIME types other than audio/mpeg and video* # are exempt from the limit check OnlyIPLimit audio/mpeg video </Location> </IfModule>
mod_limitipconn.c Kurulumu: Kurulum basit ve kolaydır. Sunucunuza root girişi yaparak SSH ile bağlanın. wget tar xzvf mod_limitipconn-0.04.tar.gz
cd mod_limitipconn-0.04
pico Makefile
~ veya (pico kurulu değilse) ~
nano Makefile
Aşağıdaki satırı bulunuz:
APXS = apxs
Şu şekilde değiştirin:
APXS = /usr/local/apache/bin/apxs
Kaydedin.
make && make install
Bu komut httpd.conf dosyasına modulü ekleyecektir. Eski configuration dosyanızı httpd.conf.new olarak yedekleyecektir.
pico /usr/local/apache/conf/httpd.conf
~ veya (pico kurulu değilse) ~
nano /usr/local/apache/conf/httpd.conf
Aşağıdaki satırın eklenmiş olması gerekmektedir:
LoadModule limitipconn_module libexec/mod_limitipconn.so
ve
AddModule mod_limitipconn.c
Sonrasında işlem yapmak istediğiniz alan adını httpd.conf dosyasında aramanız gerekiyor.
Alan adına ait apache (httpd) bilgileri aşağıdaki şekilde olacaktır:
<VirtualHost IP_ADRESI_BURADA> ServerAlias http://www.domain.com domain.com
Bu satırdan sonra örnek configuration olarak 2 klasöre tek IP limitlemesi getirmek istersek şu şekilde yapıyoruz:
<IfModule mod_limitipconn.c> <Location /videos> MaxConnPerIP 1 # In this case, all MIME types other than audio/mpeg and video* # are exempt from the limit check OnlyIPLimit audio/mpeg video </Location>
<Location /forums/media/data> MaxConnPerIP 1 # In this case, all MIME types other than audio/mpeg and video* # are exempt from the limit check OnlyIPLimit audio/mpeg video </Location> </IfModule>
Sonuç olarak bu alan adına ait apache (http) configuration bilgisi aşağıdaki gibi olacaktır:
<VirtualHost IP_ADRESI_BURADA> ServerAlias http://www.domain.com domain.com ServerAdmin
Bu e-Posta adresi istek dışı postalardan korunmaktadır, görüntülüyebilmek için JavaScript etkinleştirilmelidir
DocumentRoot /home/domain/public_html BytesLog domlogs/domain.com-bytes_log ServerName http://www.domain.com <IfModule mod_php4.c> php_admin_value open_basedir "/home/domain:/usr/lib/php:/usr/local/lib/php:/tmp" </IfModule>
<IfModule mod_limitipconn.c> <Location /videos> MaxConnPerIP 1 # In this case, all MIME types other than audio/mpeg and video* # are exempt from the limit check OnlyIPLimit audio/mpeg video </Location>
<Location /forums/media/data> MaxConnPerIP 1 # In this case, all MIME types other than audio/mpeg and video* # are exempt from the limit check OnlyIPLimit audio/mpeg video </Location> </IfModule>
User domain Group domain CustomLog domlogs/domain.com combined ScriptAlias /cgi-bin/ /home/domain/public_html/cgi-bin/ </VirtualHost>
httpd.conf dosyasını kayıt ediyoruz.
Apache Configuration Test Edilmesi:
apachectl configtest start
Herhangi syntax hatası vermeden geri döneceğinden emin olunuz.
/scripts/restartsrv_httpd
Apache yeniden başlayacaktır. Hazırladığımız örnek de iki klasör için birer bağlantı uyguladık. Sonrasında gelen bağlantılar için 503 Temporary Service sayfası hazırlayabiliriz =)
503 Temporary Service Sayfasını Oluşturma: FTP ile sitenize bağlanıp, public_html/.htaccess dosyasını düzenleme yapınız.
En üst bölümüne aşağıdaki kodu ekleyiniz:
ErrorDocument 503 http://www.domain.com/bandwidth.php
Dosyayı kayıt edip, sunucuya gönderiniz.
bandwidth.php sayfası oluşturunuz, başka bir isim vermek isterseniz üstte verdiğimiz ismi değiştiriniz. Bandwidth limitinin dolduğunu veya her kişinin tek download yapacağını belirten bir sayfa hazırlayıp kayıt ediniz ve sunucuya yükleyiniz.
Gerçekten güzel bir iş başardınız, artık sunucunuzda sizin belirttiğiniz limitler dahilinde çalışacak ve bandwidth tasarufu kazanacaksınız!
|