GNU/Linux >> Belajar Linux >  >> Linux

Membatasi jumlah klien yang terhubung pada VirtualHost di Apache

Masalah:
Ketika serangan DDOS atau ledakan permintaan datang secara bersamaan di server Web Apache2 saya, seluruh server dapat kehabisan RAM dan crash.

Kemungkinan solusi:
Batasi jumlah koneksi simultan ke server Web Anda per VirtualHost

Metode: Salah satu metode sederhana dan efektif yang dilakukan langsung di web server Apache adalah dengan menggunakan modul :mod_bw (mod_bandwidth) dan mod_vhost_limit . Saya lebih suka mod_vhost_limit karena jauh lebih mudah untuk dikonfigurasi dan terbukti lebih efektif menurut pengujian saya.

Lingkungan:
Kompatibel dengan Apache 2.2 xx dan Apache 2.4.xx.
Catatan: Untuk Apache 2.4.xx, 'Menambal' kode sumber asli harus dilakukan sebelum mengkompilasi modul.

Langkah-langkah:
Instal alat lingkungan build:
apt-get install build-essential apache2-dev
Unduh sumber modul dan ekstrak.
wget http://apache.ivn.cl/files/source/mod_vhost_limit-0.2.tgz
tar fvxz mod_vhost_limit-0.2.tgz

HANYA UNTUK Apache 2.4.xx
Mendapatkan patch dan menambal sumber aslinya.
Ref:https://github.com/pld-linux/Apache-mod_vhost_limit
wget https://github.com/pld-linux/apache-mod_vhost_limit/archive/master.zip
unzip master.zip
cp apache-mod_vhost_limit-master/* mod_vhost_limit-0.2/
cd mod_vhost_limit-0.2/
patch mod_vhost_limit.c < mod_vhost_limit-apache24.patch
cd ..

UNTUK Apache 2.2..xx dan Apache 2.4.xx
Mengkompilasi, menginstal dan mengaktifkan modul:
cd mod_vhost_limit-0.2
/usr/bin/apxs2 -i -a -c mod_vhost_limit.c
service apache2 restart

Gunakan modul dalam konfigurasi VirtualHost:
<VirtualHost ......>
...........
# Limits the concurrent requests to 1000 for this vhost
<IfModule vhost_limit_module>
MaxVhostClients 1000
</IfModule>
...........
</VirtualHost>


Linux
  1. Bagaimana Cara Meningkatkan Jumlah Inode Dalam Sistem File Ext4?

  2. Batas Praktis Jumlah Snapshot Btrfs?

  3. Ubah nomor port server SSH default

  1. Mengatur umask pengguna Apache

  2. Menghitung jumlah file dalam direktori menggunakan C

  3. Cara menentukan jumlah minggu dalam sebulan

  1. Apakah Nomor Mayor, Nomor Minor Unik?

  2. bagaimana cara mendapatkan daftar klien wifi yang terhubung di OpenWrt 10.03?

  3. Periksa Jumlah koneksi aktif pada port 80?