如何使用Apache HTTP Server的缓存功能

如何使用Apache HTTP Server的缓存功能

Apache HTTP服务器提供了一系列缓存功能,旨在以各种方式提高服务器的性能。

三态RFC2616 HTTP缓存 ( 推荐学习:Apache服务器 )

mod_cache及其提供者模块mod_cache_disk提供智能的HTTP感知缓存。内容本身存储在缓存中,mod_cache旨在遵守控制内容可缓存性的所有各种HTTP头和选项。

mod_cache针对简单和复杂的缓存配置,可以在其中处理代理内容,动态本地内容,或者需要加速对可能较慢的磁盘上的本地文件的访问。

双状态键/值共享对象缓存

共享对象缓存API(socache)及其提供程序模块提供基于服务器范围的键/值共享对象缓存。这些模块旨在缓存低级别数据,例如SSL会话和身份验证凭据。

后端允许数据在服务器范围内存储在共享内存中,或者数据中心内存储在缓存中,例如memcache或distcache。

专门的文件缓存

mod_file_cache提供了在服务器启动时将文件预加载到内存中的功能,并且可以改善访问时间并保存经常访问的文件上的文件句柄,因为不需要在每个请求上转到磁盘。

三态RFC2616 HTTP缓存

HTTP协议包含对RFC2616第13节描述的内联缓存机制的内置支持,mod_cache模块可用于利用此功能。

与简单的两个状态键/值缓存不同,其中内容在不再新鲜时完全消失,HTTP缓存包括保留陈旧内容的机制,并询问源服务器此陈旧内容是否已更改,如果不是则再次刷新。

HTTP缓存中的条目存在以下三种状态之一:

Fresh

如果内容足够新(比其新鲜寿命更年轻),则认为是Fresh。HTTP缓存可以免费提供新内容,而无需对源服务器进行任何调用。

Stale

如果内容太旧(早于其新鲜度生命周期),则认为是Stale。HTTP缓存应联系原始服务器,并在向客户端提供过时内容之前检查内容是否仍然是新的。

如果原始服务器仍然无效,则原始服务器将使用替换内容进行响应,或者理想情况下,源服务器将使用代码进行响应以告知缓存内容仍然是新的,而无需再次生成或发送内容。内容再次变得新,循环继续。

HTTP协议允许缓存在某些情况下提供过时数据,例如当尝试使用源服务器刷新数据时出现5xx错误,或者另一个请求已经在刷新给定条目的过程中。在这些情况下,会在响应中添加警告标头。

Non Existent

如果缓存已满,则保留从缓存中删除内容以腾出空间的选项。内容可以随时删除,可以是旧或新。htcacheclean工具可以一次性运行,或者作为守护程序部署,以使缓存的大小保持在给定大小或给定数量的inode内。在尝试删除新内容之前,该工具会尝试删除旧内容。

以上就是如何使用Apache HTTP Server的缓存功能的详细内容,更多请关注其它相关文章!