`
student_lp
  • 浏览: 428651 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
阅读更多

    当前web服务器功能异常强大,除了能够提供高性能的HTTP服务,还可以提供反向代理、页面缓存的功能。比较流行的web服务器如:Apache、Nginx。这些服务器都已经提供了成熟的插件,实现缓存功能。只需要我们在安装这些web服务器的时候,将所需的插件编译进去,并通过配置文件配置说明,就可以使用。

一、Apache缓存

1、依赖组件

    Apache服务器从2.0开始就已经可以使用缓存模块,但是2.0的时候还是实验性的,到了2.2已经完全可以放心的使用。Apache的缓存实现主要依靠mod_cache、mod_disk_cache、mod_file_cache以及mod_mem_cache。只需在配置编译的时候添加上参数:--enable-cache、--enable-disk-cache、--enable-file-cache、--enable-mem-cache即可。

2、缓存方式

    具体来说,Apache的缓存方式有两种:一种是基于磁盘文件的缓存,由mod_disk_cache实现;另一种是使用内存缓存,由mod_mem_cache实现。不过他们都依赖mod_cache模块,mod_cache模块提供了一些缓存配置指令供他们使用。而mod_file_cache模块是搭配mod_mem_cache模块使用的。

3、基于硬盘文件的缓存

    基于硬盘文件存储的缓存由mod_disk_cache模块实现,简单配置如下:

<ifModule mod_cache.c>
    CacheDefaultExpire 86400
    <ifModule mod_disk_cache.c>
        CacheEnable disk /
        CacheRoot /tmp/apacheCache
        CacheDirLevels 5
        CacheDirLength 5
        CacheMaxFileSize 102400
        CacheMinFileSize 10
    </ifModule mod_disk_cache.c>
</ifModule mod_cache.c>

    把上面的配置添加到Apache的httpd.conf文件中。上面的指令详细说明如下:

  • CacheDefaultExpire:设定缓存过期的时间(秒),模式是1小时,只有当缓存的文档没有设置过期时间或最后修改时间时这个指令才会生效。
  • CacheEnable:启用缓存,第一个参数是缓存类型,这里就是disk了。第二个参数是缓存路径,指的是URL路径,这里是缓存所有的东西,直接写上“/”即可,如:“/docs”则只缓存/docs下的所有文件。
  • CacheRoot:缓存文件所在的目录,运行Apache的用户(如daemon或nobody)要能对其进行读写,如果不清楚的话可以直接设置成777,请管理员设置该目录的访问控制权限。
  • CacheDirLevels:缓存目录的深度,默认是3,这里设置为5。
  • CacheDirLength:缓存目录的字符长度,默认是4,这里设置为5。
  • CacheMaxFileSize和CacheMinFileSize:缓存文件的最大值和最小值(byte),当超过这个范围时将不再缓存。

4、基于内存的缓存

    基于内存的缓存主要由mod_mem_cache模块实现,一个简单配置如下:

<ifModule mod_cache.c>
    <ifModule mod_mem_cache.c>
        CacheEnable mem /
        MCacheMaxObjectCount 20000
        MCacheMaxObjectSize  1048576
        MCacheMaxStreamingBuffer 65536
        MCacheMinObjectSize 10
        MCacheRemovalAlgorithm GDSF
        MCacheSize 131072
    </ifModule mod_mem_cache.c>
</ifModule mod_cache.c>

    上面指令详解如下:

  • CacheEnable:启用缓存,使用基于内存的方式存储。
  • MCacheMaxObjectCount:在内存中最多能存储缓存对象的个数,默认是1009,这里设置为20000.
  • MCacheMaxObjectSize:单个缓存对象最大为多少。默认是10000bytes,这里设置为1M.
  • MCacheMaxStreamingBuffer:在缓冲区最多能够放置多少将要被缓存对象的尺寸,这里设置为65536,通常该值小于100000或MCacheMaxObjectSize设置的值。
  • MCacheMinObjectSize:单个缓存对象最小为10bytes,默认为1bytes。
  • MCacheRemovalAlgorithm:清除缓存所使用的算法,默认是GDSF,还有就是LRU。
  • MCacheSize:缓存数据最多使用的内存,单位是kb。默认是100Kb,这是设置为128M。

注意:配置完成后需要重启Apache才能失效。并且根据缓存的需要,可以结合基于内存和硬盘的文件缓存一起使用,只要指明不同的URL路径即可。

5、注意事项

  • 要使用缓存,必须使用指令CacheEnable启用它,目前可用的类型为disk或mem,禁止缓存可以使用CacheDisable,如:CacheDisable /private。
  • 带缓存的URL返回的状态值必须为:200、203、300、301或410.
  • URL的请求方式必须是GET方式。
  • 发送请求时,头部中包含“Authorization:”的字符串时,返回的内容将不会被缓存。
  • URL包含查询字符串,如:问号?后面的东西,除非返回的内容包含“Expires:",否则不会被缓存。
  • 如果返回的状态值是200,则返回的头部信息必须包含以下的一种才能被缓存:Etag、Last-Modified、Expires,除非设置了指令CacheIgnoreNoLastMod On。
  • 如果返回内容的头部信息”Cache-Control:“中包含”private“,除非设置了CacheStorePrivate On,否则不会被缓存。
  • 如果返回头内容的头部信息”Cache-cotrol:"中包含“no-sotre",除非设置了指令DCacheStoreNoStore On,否则不会被缓存。
  • 如果返回内容的头部信息”vary“包含了”*“,不会被缓存。

6、其他一些使用技巧

    ①如果你的网站有几个文件的访问非常频繁而又不经常变动,则可以在 Apache 启动的时候就把它们的内容缓存到内存中(当然要启用内存缓存系统),使用的是 mod_file_cache 模块,具体如下: 

有多个文件可以用空格格开
MMapFile /var/www/html/index.html /var/www/html/articles/index.html 

     ②上面是缓存文件的内容到内存中,除此之外,还可以只缓存文件的打开句柄到内存中,当有请求进来的时候,Apache 直接从内存中获取文件的句柄,返回内容,和 MMapFile 指令很像,具体如下:

CacheFile /var/www/html/index.html /var/www/html/articles/index.html 

    注意:上面两个指令所缓存的文件如果有修改的话,必须重启 Apache 或使用 graceful 之类的方式强制使 Apache 更新缓存数据,否则当用户访问的时候获取的不是最新的数据。

    ③有时候需要根据某些特殊的头部信息来决定是否进行缓存,则可以使用如下指令: 

当头部信息中包含 Set-Cookie 时则跳过不进行缓存操作
CacheIgnoreHeaders Set-Cookie 

   ④有时候需要缓存的时候跳过 URL 中的查询字符串?使用如下指令: 

CacheIgnoreQueryString On 

 7、更多了解

如果你想要更多了解这方面的内容,请访问:http://www.t086.com/code/apache2.2/caching.html

分享到:
评论

相关推荐

    绿色PHP+apache+mysql服务器APMServ5.2.0

    APMServ集合了Apache稳定安全的优点,并拥有跟IIS一样便捷的 图形管理界面,同时支持MySQL 5.0 & 4.0两个版本,虚拟主机、虚拟目录、端口更改、SMTP、 上传大小限制、自动全局变量、SSL证书制作、缓存性能优化...

    在varnish、squid、apache、nginx中选出一个更好的缓存服务器

    主要介绍了在varnish、squid、apache、nginx中选出一个更好的缓存服务器,需要的朋友可以参考下

    实战Nginx:取代Apache的高性能Web服务器

    但是,Nginx相关的中文资料却比较欠缺,目前还没有关于Nginx服务器的任何书籍,这也使得一些朋友对于是否采用Nginx取代Apache犹豫不决。本书就是为对Nginx服务器实践应用感兴趣的读者准备的,适用于以前没有接触过...

    运维-Nginx代理服务器-方向代理-负载均衡-数据缓存

    Nginx相较于 Apache、lighttpd 具有占有内存少,稳定性高等优势,并且Nginx有反向代理、负载均衡和缓存数据的功能。 反向代理:其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求...

    Nginx:取代apache的高性能服务器

    Nginx选择了epoll和kqueue作为网络I/O模型,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,它能够支持高达50 000个并发连接数的响应,运行稳定,且内存、CPU等系统资源消耗非常低。, 本书主要分为4个部分...

    1服务器测试报告.doc

    服务器测试报告 概述 此次测试针对新的服务器进行性能测试,主要有5个方面的测试:服务器基本性能测 试,InfoDB性能测试,BinaryDB性能测试,Apache性能测试,LINUX下MYSQL性能测试, 此文档仅针对机器硬件基本性能...

    实战Nginx.取代Apache的高性能Web服务器

    取代Apache的高性能Web服务器 电子工业出版社 319页 第1部分 基础篇 第1章 Nginx简介 1.1 常用的Web服务器简介 1.2 Nginx简介 1.3 选择Nginx的理由 1.4 Nginx与Apache、Lighttpd的综合对比 第2章 Nginx服务器...

    服务器测试报告讲解.doc

    服务器测试报告 概述 此次测试针对新的服务器进行性能测试,主要有5个方面的测试:服务器基本性能测 试,InfoDB性能测试,BinaryDB性能测试,Apache性能测试,LINUX下MYSQL性能测试, 此文档仅针对机器硬件基本性能...

    Apache-tomcat-9.0.62,一个免费的,开放源代码的Web应用服务器

    Apache-tomcat-9.0.62,一个免费的,开放源代码的Web应用服务器。可以用来配置web服务,配置简单,效率较高;官网下载速度较慢,缓存在这里供大家免费下载。

    Linux Apache设置压缩及缓存

    编辑apache模块 vim /etc/httpd/conf.modules.d/00-base.conf 确保以下三个模块没有被注释 LoadModule headers_module modules/mod_headers.so LoadModule deflate_module modules/mod_deflate.so LoadModule ...

    Nginx实战:取代Apache的高性能Web服务器

    第2章 Nginx服务器的安装与配置 第3章 Nginx的基本配置与优化 第4章 Nginx与PHP(FastCGI)的安装、配置与优化 第5章 Nginx与JSP、ASP.NET、Perl的安装与配置 第6章 Nginx HTTP负载均衡和反向代理的配置与优化 第7章 ...

    优化Apache服务器性能的方法小结

    测试与提高性能 Apache服务器已经被设计得尽可能的快,即使你用一台配置不高的机器,用不着进行太复杂的设置,它的响应内容就足以塞满以前的各种窄带连接。但随网站内容日益复杂和带宽的增加,对Apache进行优化以...

    数据管理平台 Apache Geode.zip

    概览Apache Geode 是一个数据管理平台,提供实时的、一致的、贯穿整个云架构地访问数据关键型应用.Geode 池化了服务器上的内存, CPU, 网络资源, 和本地磁盘,跨多个进程来管理应用对象和应用行为. 它使用了动态数据...

    反向代理缓存的详细介绍

     引入反向代理服务器的目的之一就是基于缓存的加速。我们可以将内容缓存在反向代理服务器上,所有缓存机制的实现仍然采用HTTP/1.1协议。 反向代理服务器不使用缓存:  可将Nginx做为Apache的反向代理服务器,反向...

    实战Nginx.取代Apache的高性能Web服务器.2010 pdf

    Nginx选择了epoll和kqueue作为网络I/O模型,在高连接并发的情况下,Nginx是Apache服务器不错的替代品,它能够支持高达50 000个并发连接数的响应,运行稳定,且内存、CPU等系统资源消耗非常低。  本书主要分为4个...

    实战Nginx:取代Apache的高性能Web服务器 第一章

    张宴《实战Nginx:取代Apache的高性能Web服务器》pdf电子版下载,此资料网友共享,请购买作者正版书籍. 目录介绍: 第1部分 基础篇 第1章 Nginx简介 1.1 常用的Web服务器简介 1.2 Nginx简介 1.3 选择Nginx的理由 ...

    《APMServ 5.2.6》:一键快速搭建Apache+PHP+MySQL+Nginx+Memcached+ASP平台的绿色软件

    APMServ集合了Apache稳定安全的优点,并拥有跟IIS一样便捷的图形管理界面,同时支持MySQL 5.0 & 4.0两个版本,虚拟主机、虚拟目录、端口更改、SMTP、上传大小限制、自动全局变量、SSL证书制作、缓存性能优化等设置,...

    Apache JMeter (apache-jmeter-5.4.3.zip)

    Apache JMeter (apache-jmeter-5.4.3.zip)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 Apache ...

Global site tag (gtag.js) - Google Analytics