0

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

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

4

2 回答 2

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

    1. 客户端是否使用Connection: Keep-Alive标头请求它。
    2. KeepAliveKeepAliveTimeout参数的设置。见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

这是客户端可以在一个“保持活动连接”上发出的请求总数。如果你有很多服务器资源,你应该保持高。或者,如果您的服务器资源不足或客户端很多,您可以降低它以将客户端发送出去并让其他人轮流。不要忘记,在客户端发出最后一个请求后,服务器仍将等待“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完全关闭,则在满足请求后连接将关闭。如果您有KeepAliveon (这是更典型的),那么连接将保持一段可配置的时间量,等待来自分配连接的客户端的另一个请求。

请求是针对动态生成的页面还是针对静态内容的,与此行为无关,但是在从服务器下载静态内容时,您最终会重用浏览器建立的连接,如果KeepAlive是上。这可以提供更好的性能,因为您没有为每个请求重新建立连接的开销。

这是一篇关于考虑使用的好文章的链接KeepAlive

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

于 2012-10-29T16:12:41.793 回答