0

を使用しながら、当社のウェブサーバは、時折、当社(アパッチ)ウェブサーバ上に存在しない(交換サーバ)ファイルに対する要求の負荷で非難ばかりしますブロックの悪いサーバ要求最低のサーバーのオーバーヘッドに

自動検出/自動検出.xml

サーバーへの負荷を最小限に抑える方法で、これらの要求にどのように対応できますか? (。これらの要求が起こり、私たちのVPSのメモリ使用量の急増と、当社のRAMの割り当てを乗り越える)

私は、サーバーは基本的に離れて行くためにそれらを言って、最低のオーバーヘッドで、対応したいです。そのファイルはここには存在しません。やめる;

現在、サーバーは404エラーページを返します。これは、WordPressのインストールが呼び出されたことを意味します。カスタム404のWordPressエラーページを返します。それは、私が避けたいと思うほどのオーバーヘッドを伴います。

これらのリクエストは何らかのハッキングの試行に由来すると思われますが、私はそれを推測しています。とにかく、私はただそれらを傍受し、可能な限り迅速かつ効率的にブロックまたは停止したいと考えています。

(私はどこから来たIPアドレスのIPブロックを入れてきましたが、私はそれがちょうど強打-モルをプレイしていると思います。)

私たちのhtaccessファイルでこれを入れてきましたが、それはしません私が欲しいことをしてください:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule ^autodiscover/autodiscover.xml$ "-" [forbidden,last] 
</IfModule> 

このルールには何か問題がありますか?

htaccessファイルを別の方法で使用して、私がしたいことはできますか? htaccessを使うよりも良い方法がありますか?私たちは404応答以外の何かを返すことができますか?おそらく400または403の応答?私たちはどうしたらいいでしょうか?私は直接アクセスすることができないVPSサーバー上にいます。

+0

また、 404ページを返す。 RewriteRuleは禁止フラグを使用するので、403レスポンスを返してはいけませんか?ルールが間違って書かれていて、適用されていない、あるいはhtaccessファイルの何かがこれを乗り越えているということですか? (ファイル内のこれは標準のWordPressのmod_rewriteコードです。) – hommealone

+0

私はまだApacheを打つ前にリクエストを控えているわけではありませんが、WordPressの前にそれらの問題を解決しようとしています。私は、これらの変異体を試してみた: ' <のIfModule mod_rewrite.c> のRewriteRule ^自動検出/ autodiscover.xmlの$で RewriteEngine - [禁じられ、最後] ' (ハイフン上の引用符なし)とも: ' RewriteEngine On RewriteRule^autodiscover/autodiscover.xml $ " - " [禁止、最後] hommealone

+0

申し訳ありません私は私のコメント編集時間を過ごしました! 私はApacheにヒットする前にリクエストをすぐには止めることができませんが、WordPressの前にそれらの問題を解決しようとしています。私は、これらの変異体を試してみた: ' <のIfModule mod_rewrite.c> のRewriteRule ^自動検出/ autodiscover.xmlの$で RewriteEngine - [F、L] ' (ハイフン上の引用符なし)とも: でRewriteBase/ のRewriteRule ^自動検出/ autodiscover.xmlの$で ' <のIfModule mod_rewrite.c> RewriteEngine - [F、L] ' しかし、WordPressは、まだ私たちのテーマのカスタム404エラーページで蹴ります。 – hommealone

答えて

0

「直接アクセスしない」とは、ソフトウェアをインストールできないことを意味します。

リバースプロキシとしてnginxを設定することをお勧めしますが、ローカル管理者がいないため問題が解決しない場合は、CloudFlareのようなサービスを使用してページルールを使用します)。

プリフォークmpm(おそらくmod_phpのために)を実行すると、パラレルクライアントを処理するための多くのプロセスが生成され、起動が比較的遅いので、それら。さらに、暴風雨が終わると、(MaxSpareServersの設定に応じて)再び殺されます。

MaxSpareServersもに関して

、少なくともダメージを格納するための方法、この行います

あなたがApacheのmpm_preforkを実行します(あなたがないかもしれません)(MPM =マルチプロセッシングモジュールは、基本的にはどのような「エンジン」Apacheが使用している場合は、 mod_phpでmpm_preforkを実行するほとんどのPHP設定)、Apacheは各並列リクエストを処理するために子を必要とします。

100リクエストが同時に入力された場合、Apacheは100以上(MaxRequestWorkersが100未満に設定されている場合はそれ以下)、子プロセスを処理します。 VPSがスワップを開始してすべての処理が遅くなるため、すべての処理と目的に対してサーバーの拒否が発生する可能性があるため、非常にコストがかかります。

このリクエストストームが終了すると、apacheには100個の子プロセスが残っており、MaxSpareServersとして設定されているものに達するまで、いくつかのプロセスが削除されます。予備のサーバーがない場合、新しい要求は、子がそれを処理するのに並行して待機する必要があります。ユーザーにとっては、基本的に「サーバーは応答しません」。

もしあなたがApacheの前に何かを置くことができないのなら、あなたはApacheの設定を変更することができますか? MaxRequestWorkersを制限すると、いくつかの成功例が得られます。これは、子プロセスの最大数が発生することができる(したがって、処理できる並列リクエストの最大数です)。そうすることで、サーバは高負荷時に応答しないように見えますが、システムにはそれほど影響はありません。プロセスがRAMではなくSWAPを使用し始めなくなり、非常に遅くなるからです。

+0

私はソフトウェアをインストールすることができないので、正しい、nginxをセットアップできません。 クラウドフレアがこれらのリクエストを私たちのサーバに当たる前に断ち切ることは間違いなく良い考えですが、どちらも可能ではないかもしれません。申し訳ありませんが、MaxSpareServersに関するあなたの説明は私の頭の中にあります。 – hommealone

+0

コメントが長すぎましたので、私は、apacheのmpmプリフォークがどのように動作し、MaxSpareServersの役割がどのような役割を果たしているかについて、より詳しい情報で私の答えを編集しました。 – janh

+0

その詳細な説明に感謝します。私たちのVPSが、例えば、php 'phpinfo()'によって、apacheのmpm_preforkを実行するかどうかを調べることはできますか? – hommealone

0

Denyまたは[F] forbiddenフラグを使用してファイルへのアクセスを試みると、WordPressが404エラーページに蹴り込まれ、応答します。

これを避けるには、カスタムの421エラーページ(最も適切と思われる)を作成し、WordPressディレクトリの外に配置し、不良リクエストファイル名からカスタムエラーページへのhtaccessリダイレクトを使用しました。

Redirect /autodiscover/autodiscover.xml /path/to/error-421-autodiscover-xml.php

これはワードプレスが起動されることなく、カスタムエラーページ(のみ1キロバイト)を返します。エラーコードファイルの名前で不良要求ファイルを含む1つのファイルに固有のカスタムエラーページを作成すると、これらの呼び出しをログファイルで識別するのに役立ちます。

電子メールのために他の場所でExchangeサーバーを実行した場合、Webサーバー上のhtacessを使用して、WebサーバーからExhangeサーバーにリダイレクトすることが適切な場合があります。適切なhtaccessのルールは次のようになります。

RedirectMatch 302 (?i)^/autodiscover/(.*)$ https://mail.example.com/autodiscover/$1

参照:https://glennmatthys.wordpress.com/2013/10/14/redirect-autodiscover-urls-using-htaccess/

@janhはそれも私たちのApacheサーバが理想的である打つ前メカニズムが要求を傍受することは確かに正しいですが、それは超えています今すぐできること。

(/autodiscover/autodiscover.xmlは、メールサーバーにトラフィックをルーティングするためにExchangeサーバーによって使用されるファイルのようです。当社のWebホスティング会社によれば、Apacheサーバーがこの要求に対してヒットすることは珍しくありませんこれらのリクエストの中には、悪意のあるボットがメールサーバーへのアクセスを検索しているものや、スマートフォンの電子メールクライアントの設定ミスやExchangeサーバー向けの他の誤ったリクエストなどがあります)。

関連する問題