WordPressにも慣れてきて、色々と試したくなると、どんどん機能を追加して、サイトがどんどん重くなってしまっているのではないでしょうか。
そんな自分もご多分に漏れず、色々と導入していたら、「GTmetrix」のスコアがこんな感じになってしまいました。
これはひどい(汗)
そしてPageLoadタイムは10s超え。
なんとかせねばと対策した一つのうちに、CloudFlare(クラウドフレア)を導入してみようと試みましたが、幾度となく失敗。「403forbidden」の前に挫けそうになりましたが、なんとか導入できました。
同じような原因で躓いている方の参考になればと思います。
CloudFlare(クラウドフレア)導入時の注意点
CloudFlare(クラウドフレア)はCDNと言われcontents delivery networkの略称だそうです。
海外のサーバーにキャッシュの負荷を分散させてサイトの表示を早くしようという仕組みのようですね。(多分)
その中の一つがCloudFlare(クラウドフレア)というシステムです。
導入には色々なサイトで紹介されていますので検索して見るといろいろ出てくると思います。
ただ、それぞれの環境によって注意点がありますのでそこは押さえておかないと、ちょっと手間のかかる作業がでてきてしまいます。
大抵問題となっているのが、CloudFlareが「海外のサーバーを使用している」という点。
CloudFlareは海外のサーバーを経由するため、アクセスが全て海外からになってしまい、セキュリティ確保の対象になってしまいます。
このため「403forbidden」(アクセス権限がありません)ということになり、管理画面にもログインできなくなってしまうため、何もできずに途方にくれてしまいます。
自分は次の4つでひっかかりました。
・レンタルサーバー側で海外IPアドレスを制限している
・wordpressのセキュリティプラグインで海外IPアドレスを制限している
・手動でセキュリティを導入して海外IPアドレスを制限している
・エックスサーバーのSSLを使用している
なんとか回避できたので、順番に解決していきたいと思います。
・レンタルサーバー側で海外IPアドレスを制限している
一番多いのがこれかなと思います。
借りているサーバー側で海外IPからの不正アクセスを制限しているため、サーバーにアクセスができなくなってしまいます。
自分はXserver(エックスサーバー)で借りているのですが、しっかりデフォルトで海外IPが制限されてしまいます。
画像はすでに「OFF」設定にしています。
エックスサーバーの場合はサーバーパネル画面からwordpressセキュリティ設定→対象ドメイン→国外IPアクセス制限設定のタブで、OFFにしておけばOKです。
他のサーバーでも似たような設定があるはずです。
設定することでセキュリティ面で不安は残りますが。
・wordpressのセキュリティプラグインで海外IPアドレスを制限している
wordpressはログイン名とパスワードが分かってしまえば乗っ取られてしまう可能性もあります。
そのため、セキュリティについては強化しておこうと思うことも多いのですが、これが原因のときもあります。
自分が使用していたのはSiteGuardというプラグイン。
SiteGuard WP Plugin は、管理ページとログインへの攻撃からの保護に特化したプラグインです。
SiteGuardのダッシュボード画面には次のようになっており、
この項目の一番上の「管理ページアクセス制限」がかかっていると海外IPからのアクセスが制限され、管理ページにログインできなくなってしまいます。
当然ですが、一度CloudFlareを導入してしまうと、この管理画面も表示されなくなってしまうため、CloudFlareのネームサーバーを元のサーバーのものに戻すか、FTPでファイルを編集するしか無くなってしまいます。
・手動でセキュリティを導入して海外IPアドレスを制限している
wordpress導入時に、
「なんだかよくわからないけどセキュリティ対策しておかなきゃ」
と、導入していたプラグインがこちら。
Scans your WordPress installation for security vulnerabilities.
wordpressの脆弱性についてスキャンしてくれて、改善する場所がわかるプラグインです。
wordpressは全世界でかなりの数使用されています。
そのため悪意のある攻撃対象になることが多く、デフォルトの設定やファイル名のままでは攻撃対象がまるわかりです。
ログイン名が「administrator」パスワードが「password」のようなものです。
その脆弱性に対応するために、手動で対応していると、例えこのプラグインを停止させても、手動で変えた部分は残ったままです。
自分の場合、手動でFTPを使ってwp-adminフォルダ内に「.htaccess」を追加していたため、それが海外IPを制限していたようです。
中身を確認したら
おそらく全部の海外IPを制限し、下で許可IPを出しているような感じです。
「.htaccess」ファイルを削除して、アクセス可能になりました。
※注意 「.htaccess」は重要なファイルです。間違った場所のものを消してしまわないように、操作する前にダウンロードしてバックアップを確保してから作業することをお薦めします。
・SSLを導入しているとリダイレクトループと表示される
これはちょっと今までのものと毛並みが違いますが、サイトにSSL(httpsで始まるURL)を導入しているとリダイレクトループが起きてしまいサイトにアクセスできなくなってしまいます。
今までのと違うのが、管理画面にログインできなくなるだけでなく、サイトにもアクセスできなくなってしまいます。
解消するためにはCloudFlareの管理画面で「Crypto」の項目から、SSLをFlexibleからFullに変更します。
これでリダイレクトループが解除されるようになると思います。
問題の発見と管理画面にアクセスできるようにする方法
自分が行った解決策では解決できない場合、おそらくは何らかのプラグインが邪魔しているのではないかと思います。
一番はセキュリティ系のプラグイン、二番目にキャッシュ系のプラグインでしょうか。
それらを停止して一つずつ確認して見るといいのかなと思います。
ただプラグインを消すにも、とにかくwordpressの管理画面にアクセスしなければなりません。
一つはCloudFlareのdevelopment modeにすることでしばらくの間、CloudFlareを使用しないようにできるようです(反映には少し時間がかかるようです)。その間になんとか解決してしまいましょうということだと思います。
またDNSのみCloudFlareを通す設定にすることでもアクセスできるようになります。
CloudFlare設定でDNSのボタンを押すと上のような表が出てきますので、オレンジの雲を通すところをクリックすると、下の雲を迂回するようなマークに変更され、アクセスできるようになります。
またどうしてもアクセスできない場合は少し面倒ですが、CloudFlareで変更したネームサーバーを元のサーバーから提供されているネームサーバーに戻せば大丈夫です。
ただ、ネームサーバーの変更設定が反映されるまでは多少時間がかかります。
逆も同様で、CloudFlareのネームサーバー設定が反映されるのも時間がかかるため、
気がついたらアクセスできなくなってしまっていた、なんてこともあるので注意が必要です。
CloudFlare(クラウドフレア)の導入結果
今回、CloudFlareの導入にあたって色々と苦労しました。それと同時に、初期の頃に何もわからずにとにかく設定した内容を、見直して理解しておく必要があるなと実感しました。
手動でセキュリティを設定したところは、かなり当初に設定していたため、すっかり頭から抜け落ちてしまい、これを見つけるのにかなり苦労しました。
そして、CloudFlare導入から半日後。再度GTmetrixで計測してみたところ。
見事にスコアが改善されました。
PageloadTimeも5秒前後と約半分の時間に改善されました。
まだ改善すべきことはあるようなスコアですが、とりあえずCloudFlareの効果と導入時の注意点として紹介させていただきました。
外部サーバーを利用するため、本来ならば有料でもおかしくないサービスですが、このCloudFlareは無料ですので導入できればしたほうがサイトの評価も上がりそうです。
どなたかの参考になっていただければ幸いです。
コメント