【管理者向け】Webサーバーに接続出来ないときに確認すべき3つのこと

 Webサーバーを運営していれば、一度は遭遇するであろう、「接続出来ない」という問題。どのような環境であっても、サービスを継続できないということは、Webサイトの信頼性に関わる重大なことです。

エラーコードを確認する

 Webページに接続したときに運良くエラーコードが表示された場合は、アプリケーションエラーを疑います。大抵の場合は、アプリケーションの内部エラーに起因する「500 Internal Server Error」が表示されていると思いますが、他にもいくつかエラーコードがあります。サーバー管理の視点から代表的なものをいくつか以下に挙げます。

エラーコード 内容 疑われること
403 アクセス権限不足 パーミッションが変更された
404 ファイルが存在しない バッチ処理などでファイルが削除された、Webページが改ざんされた、HTTPサーバーの設定が変更された
500 内部エラー アプリケーションで例外などが発生している
503 サービス利用不可 アクセス過多など

 他に400 bad request502 bad gatewayなどもよく見ますが、bad requestはユーザー起因のケースが多く、今回は割愛します。bad gatewayはHTTPサーバーやプロキシサーバー起因のケースが多いので、次節で解説します。

サーバーログを確認する

 Apacheに代表されるHTTPサーバーは、通常、/var/logディレクトリ配下にログが出力されます。Apacheであれば、アクセスログ以外にエラーログなどが個別で出力され、問題解決の手助けとなります。

 前述した502 bad gatewayについては、WebアプリケーションのエラーよりこちらのHTTPサーバーを疑うべきところです。エラーログに何か手掛かりがあるかもしれませんし、エラーがなければ、もっと外部の経路で何かが起こっていることが推理できます。

 もっとも、その時点で完全な原因の特定が出来るとは限りません。しかし、有力な情報を手にできるということの意味は、一度でも障害調査にあたった方ならよくわかるはずです。

ファイアウォールを確認する

 HTTPエラーが表示されず、ブラウザ側のエラー、例えばchromeでの「このウェブページにアクセスできません」などのエラーが発生する場合、ネットワークの経路に問題があります。DNSの名前解決ができていない などの原因もありますが、ファイアウォールの設定が誤っている可能性があります。

 一例として、iptablesなどは、非常に癖のあるファイアウォールです。なんとか苦労して設定しても、サーバーを再起動すると全て水の泡…などといったことも少なくありません。

 初歩的なミスですが、初歩的であるがゆえに、最も見逃してしまいやすいことではないでしょうか?

(番外)ドメインを確認する

 ネームサーバーに何らかの異常が起きているかもしれません。こういった場合は、nslookupを利用してドメインのIPアドレスを確認するほか、外部からサーバーのグローバルIPを直打ちして確認します。

 nslookupで得たIPアドレスが正しくないか、グローバルIPの直打ちでサイトが確認できた場合は、DNSキャッシュが古い可能性があります。ドメイン設定を見直しても繋がらない場合は、暫く(1時間ほど)待機してみましょう。

最後に

 障害対応時は、時間との戦いになることが多いですが、焦らずひとつずつ原因を潰していくことが大切です。

 案外、単純なエラーほど見つけにくいものです。一度確認したところも、二度、三度と確認するうちに突破口が見えるかもしれません。

 ネットワークの経路を追っていけば、必ず原因特定に至ることができます。諦めずにエラーを追って行きたいものですね。