Webサイトを閲覧していて「Internal Server Error」というエラーを見たことはないでしょうか。Internal Server Errorは、内部サーバーエラーという意味で、何らかの要因で、WebサーバーやWebアプリケーションサーバーでHTTPのリクエストを実行できない場合に発生するエラーです。サーバー側のエラーのため、閲覧しているユーザー側では対処できません。インターネット上でWebサービスを提供している企業にとってはサービス停止につながるため、迅速な対応が必要となる重大なエラーです。本記事では、Internal Server Errorの内容と発生時の影響、考えられる原因と対策について解説します。
目次
Internal Server Error 500とは
まずInternal Server Error 500とは何か、概要と考えられる原因について解説します。
Internal Server Error 500とは
Internal Server Error 500とは、Webサーバーで起きるエラーの一つで、サーバー内部で何らかのエラーが発生し、HTTPの要求を完了できなかったことを示すものです。
以下のように、Webサーバーやブラウザの種類によって表記が変わる場合がありますが、いずれも同じ事象を指しています。
- Internal Server Error
- 500 Internal Server Error
- HTTP Error 500
- 500 Error
- HTTP 500 – Internal Server Error
Webサーバーとブラウザとの間では、HTTP(Hypertext Transfer Protocol)というプロトコル(通信規約)でデータのやり取りを行っています。ブラウザからのリクエストに対してWebサーバーは応答を返しますが、その際にWebサーバーの現在の状態を知らせるものがHTTPステータスコードです。
ステータスコードが500番のエラーメッセージは「Internal Server Error」(サーバー内部エラー)を示しており、Webサーバー上、もしくはアプリケーションが要求を処理する過程でエラーが生じ、クライアントへ正常な応答を返せないことを示しています。
ステータス500番台のステータスコードには、以下のようなものがあります。
500 | Internal Server Error 内部サーバーエラー |
サーバーが予期しない条件が発生したためリクエストを実行できなかった。 |
501 | Not Implemented 未実装 |
要求を満たすために必要な機能をサーバーがサポートしていない。 |
502 | Bad Gateway 不正なゲートウェイ |
ゲートウェイやプロキシとして機能しているサーバーが、要求を実行しようとした時に無効な応答を受信した。 |
503 | Service Unavailable サービス利用停止 |
一時的な過負荷もしくはメンテナンスによってサーバーが応答できない。 |
504 | Gateway Timeout ゲートウェイのタイムアウト |
ゲートウェイやプロキシとして機能しているサーバーが、アクセスする先のサーバーから応答を得られなかった。 |
※参考:RFC 7231 -Hypertext Transfer Protocol (HTTP/1.1):Semantics and Content >Section 6.6.1:500 Internal Server Error https://datatracker.ietf.org/doc/html/rfc7231#section-6.6.1(2022/6/3確認)
Internal Server Error 500は、より適切な5xxのエラーコードを見つけられなかった場合に選択されるエラーであり、ステータスコードだけでは詳しい原因までは特定できません。考えられる原因については、この後の段落で解説します。
Internal Server Error 500発生時の影響
Internal Server Error 500した場合の影響は以下のようなことが考えられます。ユーザーの利便性だけでなく、SEOにも悪影響を及ぼす可能性があるため、Internal Server Error 500が発生した場合は迅速な対処が必要でしょう。
Webサイトやサービスが提供できなくなる
Internal Server Error 500は、WebサーバーやWebアプリケーションサーバーがアプリケーションの処理を実行できないことを意味しています。このエラーが発生している間は、ユーザーに対してWebサイトやWebサービスが提供できなくなるため、機会損失や信頼性の毀損にもつながりかねません。
SEOに悪影響を及ぼす可能性がある
SEO(Search Engine Optimization)とは、検索エンジン最適化の略称で、GoogleやYahoo!などの検索エンジン上で、自社のWebサイトを検索結果に上位表示させ、検索流入を増やすための対策のことです。Internal Server Error 500の状態を長時間放置していると、検索エンジンから低品質なサイトであると判断されて検索順位を大きく落としたり、そもそも検索エンジン上にインデックスされなくなる可能性もあります。
Internal Server Error 500の原因
Webサイトやサービスを運営する企業にとって、Internal Server Error 500は大きな影響をもたらしますが、このエラーはどのような原因で発生するのでしょうか。Internal Server Error 500が発生する原因には以下が考えられます。
- Webサーバーの設定ミス
- Webアプリケーションの停止・不具合
- アクセスの集中
Webサーバーの設定ミス
Apache HTTP Serverやnginxなど、Webサーバーの設定ミスによりInternal Server Error 500が発生するケースがあります。Webサーバーの設定ファイルである.htaccessの記述誤りや、ファイルのパーミッションの設定ミスがある場合に本エラーが発生する可能性があります。
Webアプリケーションの停止・不具合
Webサーバーの設定にミスがなく、正しく動作している場合でも、アプリケーションが停止している場合はInternal Server Error 500が発生します。
また、CGI、PHPへのアクセスに際して「syntax error」「Call to undefined function ******()」「failed to open stream」などのエラーが発生している場合は、プログラムのバグ・不具合に起因してエラーが発生している可能性があります。
アクセスの集中
Webアプリケーションへのアクセス集中等によりエラーが発生するケースがあります。
アクセス集中の場合は503 Service Unavailableのエラーが出る場合も多いですが、過負荷によってPHPやCGIの処理もしくはデータベースへの接続などにエラーが生じた場合にInternal Server Error 500が発生する可能性があります。
Internal Server Error 500の解決方法
最後に、Internal Server Error 500の解決方法について解説します。
Webサーバーの設定見直し
Webサーバーの設定を見直し、設定に誤りがあれば修正を行います。
.htaccessの記述の誤りや、パーミッションの設定誤りなどをチェック観点として、まずはログを確認してみましょう。例えば.htaccessに関するエラーとして「Invalid command ‘*****’」や「Expected </IfModule> before end of configuration」などがエラーログにある場合はファイルの設定ミスが疑われます。
Webアプリケーションの起動・修正
アプリケーションが停止している場合は、アプリケーションの再起動により解決するケースがほとんどです。なお、プログラムにバグ・不具合が発覚している場合は、該当の箇所を修正するしかありません。こちらもエラーログをヒントに、コードの修正と再リリースを行うようにしましょう。
サーバーリソースの増設
WebサイトやWebサービスへアクセスが集中している場合は、アクセスが落ち着くまで待つことが解決策のひとつです。ただし、ピーク時だけでなく、恒常的に過負荷の状態になっている場合は、サーバーリソースが不足していると考えられます。レンタルサーバーを利用している場合は、同じサーバーのリソースを多数のユーザーで共有する形となっているため、こうした状況がより起こりやすいでしょう。
サーバーリソースが不足している場合は、サーバーのCPU・メモリの容量を増やすスケールアップか、サーバーを複数台に増やすことで負荷を分散するスケールアウトなどの対策が必要となります。ユーザー数の多いWebサービスなどは、予想外のアクセスの急増によりリソース不足に陥るケースが多いため、あらかじめ余裕をもってリソースを準備するか、柔軟にリソースを増設できるインフラを選択することが重要です。
当社の提供するベアメタルクラウドでは、可用性の高い仮想サーバーからハイスペックな物理サーバーまで幅広いサーバーをオンデマンドで利用できるサービスを提供しており、柔軟にスケールさせることができます。サポートも充実しているため、安心してスケーラビリティの高いWebシステムを構築可能です。
まとめ
Internal Server Errorは、Webサーバーやアプリケーションサーバーの内部エラーです。Webサイトやサービスの提供ができなくなるため、エラー発生時は迅速にエラーを検知し、対策を取ることが重要です。ユーザー数の多いWebサービスでは、アクセス集中によるエラーの可能性もあるため、安心安全かつ迅速にリソースを増設できるベアメタルクラウドの利用も検討してみてはいかがでしょうか。
この記事を読んだ人へオススメ
主要なクラウドサーバーを徹底比較! VPS・レンタルサーバとの違い、選定時のポイントとは
近年、自社のサーバーインフラとしてクラウドを導入する企業が増えていますが、クラウドサーバー...
2022.03.16
VPSとは? レンタルサーバーや専用サーバーとの違いとメリット・デメリットを解説
サーバーを利用したい場合、自社で物理サーバーを購入・設置して利用するオンプレミス型だけでな...
2022.01.07