4つのフロントエンドWebサイトをホストするDebianSqueeze専用サーバーと、いくつかのバックオフィスツールとAPI(メインのWebサイトにフィードする)があります。
これはすべて2008年から問題なく稼働していますが、今日、ボックスでホストされているAPIに接続しようとすると、突然多くの110: connection timed out
エラーが発生します。
アプリはPHP/mysqlベースであり、サーバーソフトウェアはApacheです。
API呼び出しのために呼び出された各ドメインは、/etc/hosts
ファイルの127.0.0.1にマップされ、コマンドラインでのテストからcurl
とwget
の両方で実際のDNSルックアップは正常に解決されています。接続はおそらく3回に1回機能します。
Apache max_connections
を(予防策として)チェックして増やしました。同様に、mysql接続制限が引き上げられましたが、これらの制限のいずれも到達に近づいていませんでした。
タイムアウトしたテストリクエストは、Apacheのエラー/アクセスログにも触れません。Apacheが特定のリクエストに応答していないようです。
サーバーの負荷自体が0.6を超えることはありません。
iptableルールは昨日(これが機能したとき)から変更されておらず、127.0.0.1との間の内部接続を許可しています。
Php/rewriteルールなどをバイパスするために、コマンドラインのサブフォルダーから単純な画像をリクエストしてみました。テストでは、これはおよそ3回に1回返されます。お互いに失敗します。
誰かが次に見るべき他に何を提案できますか?
------------------更新-----------------
サーバーがポート80を断続的に閉じているようです。 IPテーブルにはこれを行うためのルールがありません...
何か案は?
奇妙なことに、ポートスキャンツールを使用して、ポート80が数秒ごとに開閉していることを発見しました。原因を突き止めることができませんでした。ファイアウォール/ iptablesが無効になり、Apacheがポート80で接続を受け入れるように構成されました..。
Apacheを再インストールしようとしましたが、アンインストールされませんでした(破損しているように見えました)。最終的には、解決するためにOSを再インストールすることになりました。
Apacheステータスモジュールを有効にします。 http://www.Apache.org/server-status のサンプルを参照し、接続が次のいずれかの状態に長時間留まらないようにします。W、R、 C。
また、アプリケーションや環境に変更はありますか?