エックスサーバーの500エラーと503エラーの解決方法&対策まとめ

xs

先日、エックスサーバーで管理している全てのサイトが一度に落ちました。500エラーと503エラーが交互に表示されるようになったんですが、そのときにやった対処・解決方法をまとめておきます。

500エラーと503エラーの原因は?

500エラーの場合

ある日、自分のブログにアクセスしようと思ったら、こんな現象が起こりました。かの有名な500 Internet Server Error(インターネット・サーバー・エラー)というやつです。

500

エラーページに表示されている原因は次の通りです。

断続的に発生する場合

  • CGIの負荷が大きいCGIプロセスが多数動作している。

常に発生する場合

  • CGIのパーミッション設定に誤りがある。
  • CGIのソースコードに問題がある。
  • htaccessの記述に誤りがある。

「常に発生する場合」の3つの原因はパーミッション、ソースコード、htaccessを変にいじくらない限り起こらないので、大半が「CGIの負荷が大きいCGIプロセスが多数動作している」ことによる問題になります。簡単にいうとサーバーに大きな負担がかかっているためにエラーが生じているのです。

503エラーの場合

また、別のときには503 Service Unavailable(サービスが利用できません)というエラーが表示されました。

503error

原因はただひとつ、「アクセスが大量に発生しているための一時的なエラー」です。つまりアクセスが集中的に発生したことにより、サーバーに負荷が生じてエラーになったようです。

500エラーと503エラーの対策と解決方法

まずはエックスサーバーに問い合わせて見るのが一番です。向こうから注意のメールが来ることもありますが、何もない場合は自分からメールしましょう。僕の場合はこんな返信メールが来ました。

お客様のサーバーアカウントにおいて集中アクセスによりサーバー全体に非常に高い負荷がかかっておりました。そのため、障害の発生を防ぐことを目的とし、お客様のサーバーアカウントへのWebアクセスを一時的に制限しておりました。お手数ではございますが、早急に対策を行っていただきますようお願いいたします。

500エラーと503エラーいずれの場合も設定のエラーでない限り、サーバーへの負担を軽減させる必要がありそうです。そのためにできることはおおよそ次のようなことです。

1、キャッシュプラグインを使う

ワードプレスのキャッシュ系プラグインを使うことでサーバーの負担を大幅に改善できます。キャッシュプラグインとは、すなわち一度誰かがアクセスしたページを一定時間静的なデータとして保存し、次回以降のアクセスにおいては保存した静的データを活用することで、CPU負荷を大幅に軽減し、動作を高速化させるツールです。

よく意味が分からなくても、とにかくサイトを軽くして速くするものだと理解していただければ十分です。ワードプレスを使っている人には必須のプラグインです。

人気のワードプレスのキャッシュプラグインはこの辺です。

このあたりの画像の圧縮形プラグインも使うと画像の重さが軽減されます。

2、エックスサーバーのmod_pagespeed設定をOnにする

エックスサーバーにはWebサイトのコンテンツを最適化し、表示速度の向上および転送量の軽減を図るツール「mod_pagespeed」が組み込まれているので、これを必ずOnにしましょう。

「ホームページ」>「mod_pagespeed設定」>ドメイン名をクリックすると設定ページに行けます。

mod

「ONにする」をクリックするだけで、設定が完了です。

mod2

3、国外IPアクセス制限をする

アクセスの集中が記事がバズッたことによるものなら問題ないですが、海外からのスパムやボットによる不正なアクセスが集中してサーバーに負担がかかるケースもあります。そんなときは国外のIPアクセス制限をしておきましょう。サーバーの負担やエラーに関わらずにセキュリティー強化においても便利です。

「WordPressセキュリティ設定」>ドメイン名をクリックすると設定ページに行けます。

mod3

ダッシュボードアクセス制限、ログイン試行回数制限、コメント・トラックバック制限など様々な設定ができます。注意したいのは自分が海外にいる場合はこれをしてしまうと、自分のアクセスまで制限されてしまうことです。僕は海外在住なのでダッシュボードアクセス制限は「OFF」にしてあります。

mod4

また、特定のIPアドレスのアクセスを制限するには、「アクセス拒否設定」>ドメイン名をクリックすれば設定画面に行けます。ログを調べて、およそ自分のサイトと関連性の薄い特定の地域からアクセスが集中している場合はこれを利用するべきです。一度、ロシアからものすごい数のスパムコメントが送られてくることがありましたが、そのときはこれでブロックしました。

mod6

アクセス拒否IPの追加をクリックして、IPアドレスを入力するだけでそのIPからのアクセスを防ぐことができます。

mod7

4、エックスサーバーのPHPのバージョンを最新のものにする

僕の場合、1、2、3の対策をやってもまだエラーが続きました。一つのサーバーで管理しているドメインの数は18個もあり、アクセス数も月150万PVを超えているので時間帯によっては常に大きな負担がかかっているようでした。そこでPHPのバージョンを最新にしてみました。「PHP Ver.切替」>ドメイン名で設定画面に行けます。

mod8

現在推奨されているのはPHP5.6.22ですが、これを最新のPHP7.0.7にすると大幅にパフォーマンスが改善されます。スピードも見違えるように速くなりますよ。

mod9

ただし、環境やブログの設定によってはPHP7.0.7に変更することでエラーが生じます。僕の場合、いくつかのプラグインがPHP7.0.7に対応していないことでエラーメッセージがいくつかでました。しかしこれもプラグインを削除するだけで簡単に解決できます。実際、PHP7.0.7に変更してから500エラーと503エラーは出なくなったので最終手段としてこの方法を使ってみてください。

まとめ

エックスサーバーはマルチドメインに対応していて、値段もかなりリーズナブルですが、かといって無制限にどれだけ負荷をかけてもいいということではありません。特にブログのアクセスが急増し、波に乗ってきたときにこそサーバーエラーはつきものです。せっかくの稼ぎどきにサーバーが落ちてしまうのはなんともふがいないのでサイトの軽量化やサーバーへの負荷の軽減は必須の作業です。

今回はサーバーが落ちてしまいましたが、エックスサーバーはほかのサーバーと比べても安定感は高く、問題時の対応も悪くなかったので、今後も使い続けていこうと思います。

>>エックスサーバーの詳細を読む

アドセンスで月20万円稼ぐための基礎ガイド
 今すぐ無料でダウンロード!
この記事が気に入ったらぜひシェアをお願いします!

著者:mak

更新情報の通知はこちらから!