mod_limitipconn Kurulumu

bLoOdLusT1912

Kadim Üye
1 Ağu 2007
5,470
41
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.

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>
<******** /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/*
</********>

<******** /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
</********>
</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
# vi Makefile
Aşağıdaki satırı bulunuz:
Ş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.
# vi /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 HERE>
ServerAlias 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>
<******** /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
</********>

<******** /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
</********>

</IfModule>
Sonuç olarak bu alan adına ait apache (http) configuration bilgisi aşağıdaki gibi olacaktır:
<VirtualHost IPHERE>
ServerAlias www.domain.com domain.com
ServerAdmin [email protected]
********Root /home/domain/public_html
BytesLog domlogs/domain.com-bytes_log
ServerName 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>
<******** /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
</********>

<******** /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
</********>

</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:

Error******** 503
http://www.domain.com/bandwidth.php[/QUOTE]
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!
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.