Apache连接如何工作?

时间:2012-10-29 16:05:28

标签: apache

服务器提供网页后,Apache连接是否立即关闭?

此外,如果您在与站点相同的服务器上托管所有静态资产(JS,CSS,图像等),这对Apache连接有何影响?

2 个答案:

答案 0 :(得分:3)

  1. Apache在提供页面后是否立即关闭连接取决于

    1. 客户端是否使用Connection: Keep-Alive标头请求它。
    2. KeepAliveKeepAliveTimeout参数的设置。请参阅http://httpd.apache.org/docs/2.2/mod/core.html#keepalive
  2. 所有类型的内容都使用相同的“游泳池”。连接。

  3. 好问题:因为所有内容都使用相同的KeepAlive设置,您可能希望设置不同的服务器来处理不同类型的内容。

    -

    下一个问题:

    1. MaxKeepAliveRequests记录在同一页面上:http://httpd.apache.org/docs/2.2/mod/core.html#maxkeepaliverequests
    2. 客户端可以在一个"保持活动状态连接上发出的请求总数"如果你有很多服务器资源,你应该保持高水平。或者,如果您的服务器资源较少或客户端较多,您可以降低它以将客户端发送出去并给其他人一个转机。不要忘记,在客户端的最后一个请求之后,服务器仍然会等待" KeepAliveTimeout"关闭连接并使该工作人员可用于其他客户端之前的秒数。

      1. MaxRequestsPerChild在此处记录:http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxrequestsperchild
      2. 在子服务器进程死亡之前,客户端请求的数量(以及保持活动连接的个别请求仍为1)。不同的MPM(即专门为实现这些子服务器进程的各个平台开发的Apache后端)表现不同:

        • 线程MPM的默认值为0 =永远不会死,因为所有线程无论如何共享相同的内存空间。
        • 对于使用单个子进程的MPM,让孩子经常死亡更有意义(可能会清理服务器资源和内存泄漏,如果有的话)。

答案 1 :(得分:2)

你的问题的答案可能是。根据您的KeepAlive设置,连接可能会保持打开状态。如果完全关闭KeepAlive,则在请求满足后连接将关闭。如果您打开KeepAlive(这是更典型的),那么连接将保持一段可配置的时间,等待来自分配了连接的客户端的另一个请求。

请求是针对动态生成的页面还是静态内容对于此行为并不重要,但是当您从服务器中下载静态内容时,最终会重新使用浏览器建立的连接。 KeepAlive开启的情况。这可以提供更好的性能,因为您没有为每个请求重新建立连接的开销。

以下是关于使用KeepAlive

的考虑的好文章的链接

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