サービスが突然落ちて、「The page you are looking for is temporarily unavailable. Please try again later.」と表示されていた話
ある日、サービスにアクセスしてみたら、文字通り、
「The page you are looking for is temporarily unavailable. Please try again later.」
という無慈悲なメッセージが出ていた。
そんなわけで、トラブルシューティングの流れを書いてみる。
今回は、これでうまくいったけれども、次回、これでうまくいくとは限らない。
作戦1 ログを見てみる
Apatchにしろ、nginxにしろ、ログを出力するようになっている。
知っている限りだが、だいたい下記のような感じ
サービス名 | ログの場所 |
Apatch | /var/log/httpd/access.log |
nginx | /var/log/nginx/access.log |
これらを見る。
この時、vimやlessで見ても構わないが、個人的には、tailfをおすすめする。
tailfは、テキストの内容が更新されたりすると、その更新がリアルタイムに反映されるコマンドだからである。
tailf - コマンド (プログラム) の説明 - Linux コマンド集 一覧表
これを使って、コンソール画面を眺めながら、何度か、例のエラーを吐いているwebページにアクセスしてみる。
すると、下記のようなエラーが出るばかり。
192.68.10.114 - - [1/Aug/2014:13:00:00 +0900] "GET /temp_test.php HTTP/1.1" 502 3695 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36" "-" 192.68.10.114 - - [1/Aug/2014:13:00:00 +0900] "GET /nginx-logo.png HTTP/1.1" 404 571 "http://192.168.100.131/temp_test.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36" "-" 192.68.10.114 - - [1/Aug/2014:13:00:00 +0900] "GET /poweredby.png HTTP/1.1" 404 571 "http://192.168.100.131/temp_test.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36" "-"
わかったのは、temp_test.phpにアクセスしようとすると、502だぜ。
って事と、他が404だったという事
ちなみに、エラーコードの内容は下記のような感じ。
エラーコード | 内容 |
502 | なんかサーバの中で問題が起きてて、バグってね? |
404 | 指定されたファイルないYO |
ここで、アクセスログには上記のヒントしかなかったという事になる。
→失敗
作戦2 google先生に聞こう
google先生に聞いてみた。
俺「google先生、【The page you are looking for is temporarily unavailable. Please try again later.】っていうエラーがでてるんだけど、なんか教えろ!」
google先生「下記のページを見るとよいぞなもし」
Nginx (日本語) - ArchWiki
nginxでerrorが出た場合 | OpenMediaLaboratory Blog
俺「ほう・・・。なるほどなるほど。」
ここで、話を整理すると、どうやら、こういう現象が出る原因としては、3つくらいあるらしい。
- fastcgiが落ちてる
- php-fpmが落ちてる
- ソケットが間違ったパーミッションに設定されている。
確かに、502のエラーコードを吐き出すに、あたっては、十分可能性として考えられる。
ということで、見に覚えがありそうな順番として、下記を上から順番に試しました。
-> nginxを再起動 ---> ダメ(で・・・ですよねー)
-> php-fpmを再起動 ---> 復活
ということで、これで、一応復活。
あと、ついでにDBも落ちているらしいということがわかったので、これも再起動。
これによって、復活・・・
_人人人人人人人人人人人_
> 完 全 復 活 <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
ということで、直りました。
よかったですー。