2011-01-05 10 views
1

Apacheは長いリビング接続(KeepAlive)を許可するように設定されているとしましょう。そしてそれは合理的に高いタイムアウトで構成されています。ApacheでHTTP(S)接続を終了させる

私たちは、これらの長い生活接続を強制的にシャットダウン/強制終了する必要があるときには特別なケースがあります(タイムアウトするまで待機できません)。

私にポインタを教えてもらえますか?

この情報は a)のSSL Bのために有用であろう場合、私は、もっと感謝します)リバースプロキシのSSL

一般的に、最終的な解決策は、SSLクライアント証明書認証ではApacheになります。 Apacheはリバースプロキシとして動作します。そして、私はクライアントの証明の主題に基づいていくつかの接続を殺す必要があります。

+0

この質問は、sysadmin固有のものであり、プログラミングに関するものではないため、serverfault.comに属します。 – noodl

答えて

0

私がこれを研究していたとき、私はこの問題の既存の解決策を見つけられませんでした。しかし、私はApacheモジュールのプロトタイプを作成することができました。これは、何が記述されているのか(長い時間がかかる接続を強制終了する)でした。

0

Apacheを実行している場合は2つ、SSLを使用しない場合は1つを別々にしてください。プリフォークモデルを使用する場合は、プロセスライフタイムに基づいて適切なインスタンスへの親パスを持つ古いPIDを反復的にkillから削除することができます。あなたはイントロスペクションまたはかかわらず被験者ごとにフォークhttpdプロセスのPIDを取得できることを確認して

ない...

+0

ありがとうございます。興味深い考え。しかし、私はもっと微妙なものを探していました(モジュールコードの接続をシャットダウンし、クライアントの一部を処理していたプロセス全体を終了させる)。 –

0

は、私は本当にSSLセッションを最適化するのに役立ちます長いキープアライブ設定を持つかわかりません。最初にSSLセッションのネゴシエーションが発生し、最初のリクエストを20%長くすることができます。しかし、サーバー側でSSLキャッシュが有効になり、同じブラウザーからのさらに多くのSSL要求は、SSLのネゴシエーションの影響を受けません。

私は5秒キープアライブタイムアウトをお勧めします。これは一般に、このページに添付されたページの読み込みとcss/js/imagesを処理するのに十分です。たぶん、15歳までも試すことができます。しかし、COMETの永続的な接続処理を使用しない限り、大きなものは私には意味をなさない。私は間違っている可能性がある。いくつかのテストを行います。

Apacheの背後にロードバランサの処理を行う場合や、SSLセッションキャッシュが異なるApacheサーバーで共有されていない場合、SSLの否定が繰り返されることに注意してください。これが、ロードバランサがSSLモードでリンクを維持しようとする(この人を常にそのサーバーにターゲット設定する)理由です。しかし、私はSSL KeepaliveをSSL最適化に使用するべきであるとは決して読んでいません。

+0

最適化の理由が厳密にはありません。一般的に、この場合のSSLは認証/認可のためのもので、クライアント側のアプリケーションがサーバー側のアプリケーションと通信できるようにトンネルとして機能します。いくつかのサードパーティのアプリケーションは、クライアントアプリケーションとサーバーアプリケーションであり、私のApacheは、認証と承認の責任者の真ん中に座っています。サードパーティ製のクライアントとサーバー側のアプリケーションは、独自の理由でキープアライブを利用することがあります。クライアントがもう許可されていない場合は、接続を切断する必要があります。 –

+0

SSLセッションを無効にしたいとします。あなたは、クライアント - > apache接続で短いkeep alive要求を保つことができます。 SSLセッションは、新しい要求が着信すると(5秒または15秒ごとに)有効です。次に、認証を無効にする必要がある場合は、2つのことが必要です:ファイル内にあるsslセッションを削除すると同時に、新しいauth&sslの否定が成功するのを防ぐ(ただし、この2番目の処理は既にデータベースまたはLDAPベースの接続で、このアカウントを無効にしたために既存のセッションを中断したい場合)。 – regilero

関連する問題