首页 >运维 >Apache >apache服务器缓存模块有哪些

apache服务器缓存模块有哪些

(*-*)浩
(*-*)浩原创
2019-11-28 14:46:203135浏览

apache服务器缓存模块有哪些

apache服务器缓存

apache服务器缓存工作原理           ( 推荐学习:Apache服务器 )

apache-7.jpg

上面是一个简单的流程图:

用户1访问A页面,服务器解析A页面返回给用户1,同时在服务器内存上做一定映射,把A页面缓存在硬盘上面

用户2访问A页面,服务器直接根据内存上的映射找到对应的页面缓存,直接返回给用户2,这样就减少了服务器对同一页面的重复解析。

服务器缓存和浏览器缓存的区别:

服务器缓存是把页面缓存到服务器上的硬盘里,而浏览器缓存是把页面缓存到用户自己的电脑里。

开启mod_file_cache模块,缓存静态文件

打开文件的动作本身就是一个造成延时的原因,特别是打开网络文件系统中的文件。

通过维护一个保存高使用率文件的文件描述符的缓冲区,Apache就可以避免这种延时。经常被请求的极少改变的文件,被缓存,是一种技术,降低服务器负载。

mod_file_cache提供了两种技术来缓存经常请求的静态文件。

缓冲文件(CacheFile)存在于Apache中最基本的缓冲方式是由mod_file_cache实现的文件句柄(file-handle)缓冲。胜于缓存文件内容本身,这个缓冲区维护一张打开的文件描述符表,用于保存在配置文件中使用CacheFile指令指定的文件的文件句柄。

CacheFile指令指示Apache在启动时打开某个文件并且为所有之后对这个文件的访问重复使用这个文件句柄。

//示例CacheFile/usr/local/apache2/htdocs/index.html

如果你打算使用这种方式缓存大量的文件句柄,你必须确保操作系统对同时打开的文件的数量限制是足够的。

虽然使用CacheFile不会导致文件的内容被缓存,但是将会导致在Apache运行期间所有对文件的更改都不会生效。用于提供服务的文件的内容将从Apache启动以来一直保持不变。如果在Apache运行期间文件被删除了,

开启mod_cache模块,缓存动态文件

mod_cache的存储管理模块有两个:

mod_disk_cache,一个基于磁盘的存储管理模块。

mod_mem_cache,一个基于内存的存储管理模块。

mod_mem_cache可以被配置为两种不同的操作模式:①缓存打开的文件描述符;②在堆(heap)上缓存对象。

mod_mem_cache既可以用于缓存本地生成的内容,也可以用于为反向代理模式下的mod_proxy(参见ProxyPass)缓存后端服务器输出的内容。

mod_mem_cache:基于内存的缓存直接从系统的内存中提供服务通常是取得服务内容最快速的方法。从一个磁盘控制器读取文件,或者更糟糕的是从远程网络读取文件,其速度要慢上几个数量级。

磁盘控制器通常涉及到物理动作,访问网络要受限于网络带宽,而访问内存通常仅仅只需要几毫微秒时间。内存也许是目前单位字节最昂贵的存储器,保证它充分发挥作用非常重要。

将文件缓存在内存中将导致系统可用内存的减少。正如我们将要看到的,在操作系统存在内存缓冲区的情况下,这不是一个大问题。

但是当使用Apache自己的内存缓冲区的情况下,确保没有为缓冲区分配太多的内存就显得十分重要。否则,操作系统将会使用swap(虚拟内存/交换区),这可能会导致性能急剧下降。操作系统缓冲几乎所有现代的操

Apache服务器的内容缓存

Apache2.2起有两个缓存模块被正式使用:mod_cache和mod_file_cache。这些缓冲体系提供了一个强有力的途径来加速原始web服务器(originwebserver)和代理服务器(proxy)的HTTP处理速度。

官方手册的说明mod_cache与mod_file_cache的区别:mod_cache缓存的实现,要依靠两个模块mod_mem_cache和mod_disk_cache,他们提供了智能的HTTP缓冲。

内容(content)本身被存储在缓冲区中,mod_cache的目的在于管理控制内容缓冲能力的各种HTTP头和选项。它可以同时处理本地的内容和代理的内容。

mod_cache被设计为同时针对简单的和复杂的缓冲配置,以用于处理代理的内容、动态的本地内容、必须加速访问的随时间而改变本地文件。

阅读开启mod_cache模块方法。mod_file_cache实现了一个更基本的、但是在某些情况下更有效的缓冲形式,它避免了主动确保URL缓冲能力所需的维护复杂性,mod_file_cache通过提供文件句柄(file-handle)和内存映射(memory-mapping)的技巧来维持一个自Apache最后一次启动以来的文件缓冲区。

以上是apache服务器缓存模块有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn