ブラウザで F5 キーを押すだけで CPU 負荷が 90 になるのを回避するにはどうすればよいですか?

ブラウザで F5 キーを押すだけで CPU 負荷が 90 になるのを回避するにはどうすればよいですか?

私は PHP ウェブサイトを持っていますが、ブラウザで F5 キーを押すと、次のような CPU 負荷が発生します。

$ w 11:34:54 16日、1分、5ユーザー、 負荷平均: 90,81, 32,02, 12,57

それは私のウェブサイトのすべてのページから来ています!だから、それはアルゴリズムからではなく、Apache の設定から来ていると思いますか?それについては完全には確信がありません。

私は PHP (codeigniter を使用)、単一の接続を持つ mongoDB を使用しています。接続を使用するためにグローバル定数を使用し、毎回それを再利用しています。リクエストごとに新しい接続を作成することはありません。ほぼすべての Web ページは 300 ミリ秒未満で応答します。

それで、それは Apache から来るのでしょうか (そして、私は適切な Stackechange Web サイトで質問をします)、それとも私のグローバル PHP 接続から来るのでしょうか (そして、私は StackOverflow に切り替えます)。

それとも、他のパラメータから来ているのでしょうか? Apache から来ている場合、同時接続数を制限する方法はありますか? 最初のリクエストが完了するのを待たずに同じページを何度も読み込むのは正しい動作ではないためです。

つまり、誰かが F5 キーを押すだけで私のサーバーを停止できるのです...DDOS なら問題ありませんが、「単なる」DOS なら...

ありがとうございます、

A.

答え1

以下のモジュールをお試しください

  • モジュール(Apache のサービス拒否回避モジュール)
  • mod_limitipconn(Apacheの同時接続制限モジュール)
  • mod_cバンド(ユーザーと仮想ホストの帯域幅使用量を制限する問題を解決するために提供される Apache 2 モジュール。)

役に立つかもしれない

もう1つ。Apacheの背後にnginxを設定すると、非常に柔軟なレート制限機能が得られます。

関連情報