Apacheのトラブルを解決する10のヒント

文:Scott Lowe(TechRepublic) 翻訳校正:石橋啓一郎
2008-01-24 08:00:00
  • このエントリーをはてなブックマークに追加

6:「connection reset by peer」エラーについてはあまり心配しない

 ユーザーが(停止ボタンやエスケープキーを押して)サイトへの要求をキャンセルすると、サーバのログには「connection reset by peer」と記録される。このメッセージが時々しか現れないようなら、おそらく誰かが間違ってアドレスを入力したか、サイトが読み込まれるのを待てなかったとということを意味している。もしこのメッセージを頻繁に見るようなら、サイトが遅くなって混雑問題が起きており、一部の人の忍耐を超えるところまで来ている可能性がある。この問題を生じる別のネットワークの問題を抱えている場合もある。

7:Apacheが実際に実行されていることを確認する

 白状すると、私自身も過去にこの罠にはまったことがある。かなり長い時間をエラーログとhttpd.confファイルを調べることに費やしてしまい、Apacheが実際に実行されているかどうかを確認することすらしていなかった。自分で自分を叱りつけ、サービスを立ち上げ直してから、今まで他人にこの話をしたことはなかった。

 ついていない日はあるものだ。まず単純なことからチェックすべきだ。

8:ポートの競合がないか確認する

 もしデフォルトの設定でApacheをインストールしていれば、httpdサービスはポート80番をlistenする。もし他のサービスでポート80番をlistenしているものがあれば(違うウェブサーバを動かしているかもしれない)、Apacheは要求をlistenすることができない(あるいは、Apacheは正常に動くが、他のアプリケーションが動かなくなる)。このような場合、ポート80番をlistenしているサービスがApacheのみであることを確実にする。

 fuserコマンドとpsコマンドの組み合わせで、簡単にこれを行うことができる。

 「fuser -n tcp 80」のコマンドで、ポート80番をlistenしているプロセスのリストを得ることができる。その後、psコマンドを使い、どのプロセスがhttpdデーモンなのかを確認する。この部分はps -ef | grep httpdで実現できるだろう。すると、図Aのような結果が得られる。

psとfuserの出力画面
図A どのプロセスがポート80番をlistenしているかを調べる

 次に、fuserコマンドで出力したポートのリストを、psコマンドで出力されたものと比較する。もしfuserで出力されたポートの数がpsのものよりも多ければ、psコマンドを使って、ポート80番をlistenしている他のサービスが何かを確認する。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]