0

サーバーが Web ページを提供した直後に Apache 接続は閉じますか?

また、サイトと同じサーバーですべての静的アセット (JS、CSS、画像など) をホストしている場合、Apache 接続にどのような影響がありますか?

4

2 に答える 2

3
  1. ページを提供した直後に Apache が接続を閉じるかどうかは、

    1. クライアントがConnection: Keep-Aliveヘッダーで要求するかどうか。
    2. KeepAliveおよびKeepAliveTimeoutパラメータの設定。http://httpd.apache.org/docs/2.2/mod/core.html#keepaliveを参照してください
  2. すべてのタイプのコンテンツは、接続の同じ「プール」を使用します。

良い質問です。すべてのコンテンツが同じ KeepAlive 設定を使用するため、異なる種類のコンテンツを処理するために異なるサーバーをセットアップしたい場合があります。

--

次の質問:

  1. MaxKeepAliveRequests は、同じページに記載されています: http://httpd.apache.org/docs/2.2/mod/core.html#maxkeepaliverequests

これは、1 つの「キープ アライブ接続」でクライアントが作成できるリクエストの総数です。多くのサーバー リソースがある場合は、それを高く保つ必要があります。または、サーバー リソースが少ない場合やクライアントが多い場合は、値を下げてクライアントを追い出し、他の誰かに順番を与えることもできます。クライアントからの最後のリクエストの後、サーバーは接続を閉じて別のクライアントがそのワーカーを利用できるようにするまで、「KeepAliveTimeout」秒待機することを忘れないでください。

  1. MaxRequestsPerChild はここに文書化されています: http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxrequestsperchild

これは、子サーバー プロセスが終了するまでのクライアント リクエストの数 (およびキープアライブ接続を介した個々のリクエストは、それぞれ 1 つの静止数) です。異なる MPM (つまり、これらの子サーバー プロセスを実装する個々のプラットフォーム用に特別に開発された Apache バックエンド) は、異なる動作をします。

  • スレッド化された MPM のデフォルトは 0 です。つまり、すべてのスレッドが同じメモリ空間を共有するため、死ぬことはありません。
  • 個々の子プロセスを使用する MPM の場合、子が頻繁に終了することを許可する方が理にかなっています (サーバー リソースやメモリ リークがあれば、それをクリーンアップする可能性があります)。
于 2012-10-29T16:09:35.887 に答える
2

あなたの質問への答えは多分です。設定によっては、接続が開いたままになる場合がありKeepAliveます。完全にKeepAliveオフにすると、要求が満たされた後に接続が閉じます。オンにするKeepAliveと (より一般的です)、接続が割り当てられているクライアントからの別の要求を待機する構成可能な時間、接続が維持されます。

この動作に関しては、要求が動的に生成されたページに対するものか、静的コンテンツに対するものかは問題ではありませんが、サーバーから静的コンテンツをダウンロードするときにブラウザーが確立した接続を再利用することになりますKeepAlive。の上。これにより、リクエストごとに接続を再確立するオーバーヘッドがないため、パフォーマンスが向上する可能性があります。

利用検討の良い記事へのリンクはこちらKeepAlive

http://abdussamad.com/archives/169-Apache-optimization:-KeepAlive-On-or-Off.html

于 2012-10-29T16:12:41.793 に答える