さくらインターネットにワードプレスをインストールしてこちらのブログを公開しているのですが、最近、サーバーの負荷が高まってきて、503が頻繁に発生するようになってしまいました。Jetpackを外して負荷がある程度収まったのですが、それでもなお、負荷が高い状況が続いています。
これはサーバーへの不正アクセスが後を絶たないためかもしれないと予測し、リアルタイムにアクセス状況を監視する機能を持っているWordfenceというプラグインを導入してみました。
不正なアクセス
するとxmlrpc.cgiやログインを試みるようなアクセスがかなりあります。.htaccessで不要なアクセスは弾くようにしているのですが、それでもなおかいくぐってきているアクセスがあるようです。
さらに、人間がブラウザで見ている以外のアクセスがかなりあります。Yahooやmsn、googleのクローラーは良いのですが、それ以外のアクセスも相当数あります。中国、フランス、ドイツなどからのアクセスが極めて多いのが特徴でした。
さくらインターネット自体にも、ウェブアプリケーションファイアウオール機能をONにすることができるのですが、試しにONにしてみたところ、Wordpressの記事を更新することができなくなってしまいました。
別にURLを準備して、それにBasic認証をかけて更新専用に利用するという方法もあるようですが、それはそれで大変そうでしたので、ほかに何か良いものがないか調べてみました。
IP GEO BLOCKプラグイン
すると、作者が日本人のプラグインがあるのを見つけました。IP GEO BLOCKというプラグインです。変なアクセスを見分けてくれてアクセスをブロックするだけではなく、スパムコメントを防いでくれるAkismetというプラグインがワードプレスにはついてきますが、これをOFFにしても相当数のスパムコメントを防いでくれるということでした。Akismetはスパムコメントであってもデータベースには書き込んでしまうので、どうしてもサーバーの負荷が上がってしまいますが、これをオフにできるのは負荷軽減に向けて効果が大きいです。
明日、さくらインターネットのリソース情報を確認し、503エラーがどの程度減ったのかを確認してみたいと思います。
【2017/01/23追記】
先ほど、このプラグインの作者の方からコメントをいただきました。「検証のタイミング」を「”mu-plugins” (ip-geo-block-mu.php)」に設定すると、他のプラグインが起動される前にさっさと遮断して終了するので、よりサーバーの負荷を最小限に抑えることができるというコメントです。
さっそく、教えていただいた通りに設定を見直しました。いくつかの制限事項もあるようです。
【リンク先が別の事業者に譲渡されたようなのでリンクを削除しました】
ただ、英語なので・・・・。
効果が出るか否か、何か副作用が出ることはないかの二軸で確認したいと思います。
【2018年2月12日追記】
国外からの不明なアクセスで活躍
少し設定を直してみました。やはり、ログの情報を見ると、国外からの不正なアクセスが相次いでいるので、このプラグインにはお世話になりっぱなしです。
ただ、最近、予約投稿が失敗する事象が出ているので、どのプラグインの影響かも含めて原因を追求してみます。
【2019/01/08追記】
cocoonのアクセス集計と干渉
こちらのブログのテーマをcocoonに変更しました。cocoonにはアクセス数をカウントする機能があって、この機能を使うと、人気記事の一覧を出すことまでできてしまいます。今まで、Simple GA Rankingというプラグインで人気記事の一覧を生成していたのですが、Cocoonの標準機能を使うことにしました。
しかし、機能を有効にしても各ページのアクセス件数がカウントアップされません。問題の切り分けのため、プラグインを一つずつ外していくと、このIP geo blockを外したところで、カウントアップが始まりました。現時点、どのパラメータを変更すれば良いかまで切り分けられていないので、一旦はプラグインを無効にしてあります。
時間があるときに切り分けを進めたいと思います。
【2021年9月7日追記】
最終更新が3年前の日付で止まっているので、現時点でもこのプラグインは利用していません。
【2024年6月27日追記】
「IP Location Block」をインストール
後継の「IP Location Block」というプラグインをWordpressにインストールしました。設定等は、IP Geo Blockと似ているので、特に戸惑う部分はありませんでした。しかし、cocoonのアクセスカウンターが止まるという事象は残念ながら再現してしまいました。
設定画面で、「テーマ領域」の「例外」で「cocoon」をマークしたところ、アクセスカウンターが動作してくれるようになりました。
コメント
こんにちは。IP Geo Blockの作者です。とても興味深い記事をありがとうございます。
ぜひ、「検証のタイミング」を「”mu-plugins” (ip-geo-block-mu.php)」に設定してみてください。インストールされているプラグイン数にもよりますが、他のプラグインが起動される前にさっさと遮断して終了するので、サーバー負荷を最小限に抑えることが出来ます。
コメント、失礼しました m_(..)_m
コメントをありがとうございました。また、有益なプラグインを公開していただいていることに心から感謝します。Akismetを無効にしているのに、SPAMコメントがまったく受け付けられないのが凄いです。さらに、ログを見ていると、怪しいアクセスを見事にBlockしてくれているので大変に頼もしいです。
さっそく、教えていただいた通りに設定を見直しました。さくらインターネットを利用しているのですが、503の発生状況などからサーバー負荷の状況を確認しています。どんな結果になるか楽しみにしています。