いやぁ参ったです。全然トラブルの無かったWebサーバが留守にしている間にトラブルを起こしたらしく、アクセス出来ないとメールをいただきました。Netcraftで調べてみたら確かに変。そして調べているとどんどんはまっていく(汗
まず変だったのがローカルループバックloに関するエラー。/var/log/messageにたっぷり記録されていました。こんなの原因調べる術知らないから素直に再起動してみた。凄く久しぶりの再起動。これが一つの罠。そう言えば前のトラブルも長期稼働し続けた末のチョンボだった記憶が。
起動中、NTPの時刻同期エラーが発生。っていうかログを見ると、ずっと時刻同期に失敗していたらしく時刻が5分位ずれている。なんでかな?と調べてみたらnamedが起動してないからNTPサーバへアクセス出来ないって罠。何時namedが落ちたんじゃ?しかも起動しないってなんでじゃー。とりあえずマニュアルでコマンドを入れて起動。NTPの時刻同期成功。これは原因を解決しておかんとまた繰り返すな。
加えてどうやら、DDNSの書き換えツールとして使っているddclientもcheckip.dyndns.orgの名前解決が出来ずにエラーを吐いてる。これじゃぁsasapurin.comは孤立状態じゃんか!まぁnamedが起動したらこの問題は解決した。DNSに反映されるまで15分位だったか。
少し待ってからWindowsのIEからWebサーバにアクセス。しかしこれではいかんと気づいた。我が家の場合はLAN内部はbind(named)で名前解決しているので、そのままだとプライベートアドレスが帰って来ちゃう。ネットワークのプロパティからDNS設定をプロバイダのDNSに変更して試験。これでグローバルアドレスが返ってくるハズ。そしたらルーターの認証が出てくる。そうだった、内部からグローバルアドレスでアクセスするとルーターの設定画面が応答するんだった。プロクシ噛まさないとね。サイバーシンドロームじゃ。
サイバーシンドロームで適当なプロクシを探してIEの接続プロパティを変更。80をポートフォワード設定しているから、これでルーターじゃなくてWebサーバが応答するはず。しかし、レスポンスが無い。なんで??もちろんYahoo!とかGoogleとかはちゃんと応答する。って事はWebサーバの問題かよ。
まさか、Apacheが起動してないって事は無いよな?プロセスを見るコマンドは何だっけ。psじゃなくてリアルタイムで見る奴。思い出せない。えーと、えーと。頭が錆び付いてる。しばらく考えてたらtopコマンドを思い出した。そうぢゃtopぢゃ。
# top
げげげー、Apacheが起動してないじゃん。応答するはずないよ。Webサーバーを再起動するまでは、かみさんが自分のHPにアクセスしていたから、FreeBSDの起動関係か。って事でrc.d辺りだなと考えて確認してみたら、/usr/local/etc/rc.d/apache.shの中の記述でEnableがNOになってた。うーん、そう言えばかなり前にPortの更新をした様な気がする。その時に書き換わったんだろうね。YESに書き換えておかないとまた再起動した時に同じ罠にはまるから書き換えておく。(補足:この対処方法は間違いです。)
# apachectl start
# top
apacheがプロセスとして常駐する様になった。これで問題ないだろうと思いきや、やっぱり応答してくれない。なんでーなんでーと考えていたら、アクセス制限を掛けていることを思い出した。海外からのアクセスは片っ端から蹴る様に実験がてらipfwで定義していたのだった(汗 海外の串じゃあかんやないの、日本の串ささないと。
サイバーシンドロームで日本国内の串を探してきてIEにセット。これで行けるでしょとやってみたところ、異様に時間がかかる。なんで?と思いながらも待っていたら少し画面が表示された。しかし何かが変。なんでこんなに時間がかかるねん?
ここまで調べたんだから、串を変えれば解決するんじゃないか?と思って別の串にしてみたら、普通に表示される様になった。良かったぁ~
思い返してみれば、FreeBSDサーバをいじるのってかなり久しぶりだ。再起動かけたのってもしかしたら一年位前だったかも知れない。再起動前に確認しておくべきだったな。
最近、Linuxの方に浮気気味だし、しかもGUIを使う様になっちゃってから、コマンドを忘れる傾向が強い。まぁ用途もサーバーからデスクトップに変わってきてるから、仕方ないっちゃあ仕方ないんだけど、RHCE受験で勉強した知識も錆び付いて来たって感じじゃん。ホント使わないと頭って錆びてくるね。
体調も回復して来たし、再就職にUNIX系の知識を活かそうかと思っていたけれど、身体のリハビリと同様に頭のリハビリも必用じゃんか..orz 今日は反省点とかを実感してどっと疲れがでて来たのである。いつもならトラブルシューティングが終わると達成感あるのに、今回は反省ばっかだからスッキリしないな。ああ、修行が足りん。
FreeBSDの場合、OS起動時のスタートアップ動作は、/etc/rc.conf ファイルで制御しています。確かに、/usr/local/etc/rc.d/apache.sh を書き換えても起動するのですが、それは本来の考え方を無視した結果オーライな間違った設定方法だと後に知りました。正式には下記の様にしておくのが正解というか、FreeBSD流のスタートアップ登録なのでしょう。
# vi /etc/rc.conf
apache_enable="YES" この一行を追記
これはapache1.3系の場合の話。どういう風に記述するかは、それこそ/usr/local/etc/rc.d/apache.sh に書いているので、それを確認する事です。そうすれば応用が利くので、Apacheに限らず、他のアプリケーションを自動起動させる方法も身につくというものです。


コメント