More from: WEBサーバ

タイムアウト時間・・・

特定のWEBサーバにクライアントから接続するとかなりの頻度で画面表示が出来なくなっていた。
現象としては
・トップページを表示(これはエラーにならない)
・ログインボタンを押す(ここでエラー表示)
・ブラウザの戻るボタンでトップページに戻る
・ログインボタンを押す(今度は成功)
・画面内のリンクをクリック(ここでもエラーになる)
という流れ。
いろいろ調べている内にプロキシサーバを通す場合に限ってエラーになる頻度が高くなることが判明した。
そこでプロキシのログを細かく見ていくと、Keep Aliveタイムアウトと通信中にWEBサーバ側からコネクションをクローズされたというログが大量に出ていた。
さらにWEB・プロキシ双方のアクセスログを見ていくと、プロキシがクライアントから受け付けたコマンドがWEBサーバに渡っていないことがあるのを発見。
どうもプロキシ側のセッションKeepAlive中に出したリクエストがWEBサーバに渡っていない模様。
で、気付いたのがWEBサーバとプロキシサーバでタイムアウトの時間が異なっていて、WEBサーバ側が短くなっていたこと。
どうもそのせいでプロキシ側はセッションが継続中だと思っているのにWEBサーバ側はセッションがなくなっていると判断して通信が出来なくなっていた模様。
実際にエラーになる操作を一定時間経過後に行うとエラーにならず、即座に行うとほぼ確実にエラーになるので、この推測は正しいと思われる。
双方のタイムアウト時間を同じにしたところエラーが出なくなったので、しばらくはこの状態で様子を見ようと思う。

←クリックしてくれると嬉しいです。

apache起動時のエラー

3連休が明けて職場に出てきたら早速連絡があり、職場のWEBサーバの一台にアクセス出来ないとの事。
自分の使っているPCでもアクセス出来ないが、pingは通るしsshでの接続は可能なのでサーバそのものは動作している。
WEBサーバだけが駄目なのでこれはWEBサーバプロセスであるアパッチが正しく動作していないということが判明。
早速プロセスを再起動しようと
#/etc/rc.d/init.d/httpd start
としてみたが、
httpd を起動中: httpd: apr_sockaddr_info_get() failed for hoge.xxx.yyy(ホストのFQDN名)
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for serverName
とメッセージが出て起動できない。
このエラーを調べてみたら/etc/sysconfig/networkファイル内で記述している自分のホスト名がアパッチの設定ファイル(/etc/http/conf/httpd.conf)に記述されていないということなので、早速記述を追加(同時に/etc/hostsファイル内にも記述が無かったので127.0.0.1(localhost)の行に追加)した。
これで大丈夫だと思ってアパッチの起動を試したところ、今度はエラーメッセージ無しで起動に失敗。
/var/log/httpd/error_logを見ても特にエラーメッセージは無し。
「あれ?変だな?」
と思ってもう一つのエラーログである
/var/log/httpd/nss_error_log
を開くと、そこには
[error] Certificate not verified: ‘Server-Cert’
[error] SSL Library Error: -8181 Certificate has expired
[error] Unable to verify certificate ‘Server-Cert’. Add “NSSEnforceValidCerts off” to nss.conf so the server can start until the problem can be resolved.
と3行のエラーが残っていた。
これを解消するには/etc/httpd/conf.d/nss.confファイルに”NSSEnforceValidCerts off”を追加せよと書いてあるので、素直にそれに従って同ファイルの最初に追加したところアパッチが起動するようになった。

これでなんとか復旧できたのだが、連休前までは動作していたのに急にエラーになったのは何故なんだろう?
不思議だ・・・・・・・

←クリックしてくれると嬉しいです。