GNU/Linux >> Linux の 問題 >  >> Linux

ApacheのVirtualHostに接続されているクライアントの数を制限する

問題:
Apache2 WebサーバーでDDOS攻撃またはリクエストのバーストが同時に発生すると、サーバー全体でRAMが不足してクラッシュする可能性があります。

考えられる解決策:
VirtualHostごとにWebサーバーへの同時接続の数を制限する

方法: Apache Webサーバーで直接実行される簡単で効果的な方法の1つは、モジュールを使用することです: mod_bw (mod_bandwidth)および mod_vhost_limit mod_vhost_limitが好きです 設定がはるかに簡単で、私のテストによるとより効果的であることが証明されているためです。

環境:
Apache 2.2xxおよびApache2.4.xxと互換性があります。
注: Apache 2.4.xxの場合、モジュールをコンパイルする前に、元のソースコードの「パッチ適用」を行う必要があります。

手順:
ビルド環境ツールをインストールします:
apt-get install build-essential apache2-dev
モジュールソースをダウンロードして解凍します。
wget http://apache.ivn.cl/files/source/mod_vhost_limit-0.2.tgz
tar fvxz mod_vhost_limit-0.2.tgz

Apache2.4.xxのみ
パッチを取得し、元のソースにパッチを適用します。
参照: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 ..

Apache2.2..xxとApache2.4.xxの両方の場合
モジュールをコンパイル、インストール、有効化します:
cd mod_vhost_limit-0.2
/usr/bin/apxs2 -i -a -c mod_vhost_limit.c
service apache2 restart

VirtualHost構成でモジュールを使用します:
<VirtualHost ......>
...........
# Limits the concurrent requests to 1000 for this vhost
<IfModule vhost_limit_module>
MaxVhostClients 1000
</IfModule>
...........
</VirtualHost>


Linux
  1. Ext4ファイルシステムのiノードの数を増やす方法は?

  2. メジャー、マイナー番号は一意ですか?

  3. UbuntuにApacheWebサーバーをインストールする方法

  1. Linux用のトップ5Googleドライブクライアント

  2. Apache ユーザーの umask の設定

  3. 最大ポート番号はいくつですか?

  1. Btrfsスナップショットの数に実際的な制限はありますか?

  2. デフォルトのSSHサーバーのポート番号を変更する

  3. OpenWrt 10.03 で接続されている wifi クライアントのリストを取得する方法は?