- 浏览: 485320 次
- 性别:
- 来自: 长沙
文章分类
最新评论
-
Source_野驴:
...
jsp静态化和伪静态化 -
zidanzzg:
很好的知识,找到了利用异或交换数值的理论支持,谢谢分享
XOR的性质和运算 -
ueseu:
引用(2) DomainDomain域名也是Cookie的一部 ...
Cookie的组成 -
ueseu:
引用Secure取true或者false值。如果为true,那 ...
Cookie的组成 -
liqi___123:
理解得很透彻,谢谢!!
ROLAP、MOLAP和HOLAP联机分析处理区别
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 即可。 关于 Apache 的编译安装本文就不再说了,可以参考以前的文章。这里主要介绍一下如何配置使用 Apache 的缓存功能。
具体来说,Apache 的缓存方式有两种,一种是基于硬盘文件的缓存,由 mod_disk_cache 实现,另一种是使用内存缓存,由mod_mem_cache 实现,不过它们都是依赖 mod_cache 模块的,mod_cache 模块提供了一些缓存配置的指令供它们使用,而mod_file_cache 模块是搭配 mod_mem_cache 模块使用的,下面分别进行介绍。
1、基于硬盘文件的缓存
基于硬盘文件存储的缓存由 mod_disk_cache 模块实现,先看个简单的配置例子:
CacheDefaultExpire 86400
CacheEnable disk /
CacheRoot /tmp/apacheCache
CacheDirLevels 5
CacheDirLength 5
CacheMaxFileSize 1048576
CacheMinFileSize 10
把上面的配置加到 Apache 的 httpd.conf 文件中,如果缓存相关的模块都已经编译进了 Apache 的核心,则无需加载模块,直接就能使用上面的指令。指令的详细说明如下:
CacheDefaultExpire: 设定缓存过期的时间(秒),默认是1小时,只有当缓存的文档没有设置过期时间或最后修改时间时这个指令才会生效
CacheEnable:启用缓存,第1个参数是缓存类弄,这里当然是 disk了,第2个参数是缓存路径,指的是 url 路径,这里是缓存所有的东西,直接写上“/”即可,如“/docs”则只缓存 /docs 下的所有文件
CacheRoot:缓存文件所在的目录,运行 Apache 的用户(如daemon 或 nobody)要能对其进行读写,如果不清楚的话可以直接设置成 777,请手动建立该目录并设置好访问权限
CacheDirLevels:缓存目录的深度,默认是3,这里设置为5
CacheDirLength:缓存目录名的字符长度,默认是4,这里设置为5
CacheMaxFileSize 和 CacheMinFileSize :缓存文件的最大值和最小值(byte),当超过这个范围时将不再缓存,这里设置为 1M 和 10bytes
基于硬盘文件存储的文件基本上就这些内容,设置好后重启 Apache 应该就能使用了。一切正常的话,可以在缓存目录下看到 Apache 自动建立的一些目录和缓存的数据文件。
2、基于内存的缓存
基于内存的缓存主要由 mod_mem_cache 模块实现,还是看个简单的配置吧,这样比较直观:-)
CacheEnable mem /
MCacheMaxObjectCount 20000
MCacheMaxObjectSize 1048576
MCacheMaxStreamingBuffer 65536
MCacheMinObjectSize 10
MCacheRemovalAlgorithm GDSF
MCacheSize 131072
简单说一下上面一些指令的意思:
CacheEnable:启用缓存,使用基于内存的方式存储
MCacheMaxObjectCount:在内存中最多能存储缓存对象的个数,默认是1009,这里设置为20000
MCacheMaxObjectSize:单个缓存对象最大为 1M,默认是10000bytes
MCacheMaxStreamingBuffer:在缓冲区最多能够放置多少的将要被缓存对象的尺寸,这里设置为 65536,该值通常小于100000或 MCacheMaxObjectSize 设置的值
MCacheMinObjectSize:单个缓存对象最小为10bytes,默认为1bytes
MCacheRemovalAlgorithm:清除缓存所使用的算法,默认是 GDSF,还有一个是LRU,可以查一下 Apache 的官方文档,上面有些介绍
MCacheSize:缓存数据最多能使用的内存,单位是 kb,默认是100kb,这里设置为128M
保存重启 Apache 基于内存的缓存系统应该就能生效了,根据需要可以使基于内存的存储或硬盘文件的存储方式一起使用,只要指明不同的URL路径即可。
3、注意事项
使用缓存需要注意如下事项:
要使用缓存,必须使用指令 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-Control:”中包含“no-sotre”,除非设置了指令 CacheStoreNoStore On,否则不会被缓存
如果返回内容的头部信息“Vary:”中包含了“*”,不会被缓存
4、其它一些指令的介绍
如果你的网站有几个文件的访问非常频繁而又不经常变动,则可以在 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
Apache 的缓存系统不仅可以缓存服务器本身的文件,也可以缓存通过代理得到的内容,对了,Apache 可以像 Squid一样做代理,而且做的还不错,下篇文章就介绍一下 Apache 的代理功能吧。善用 Apache的缓存功能,可以让你的网站速度提升不少。做为一个网站来说,虽然可用的各种缓存方案很多,但在 Web 服务器层做缓存的效率还是很值得一试的。
更多信息请参考:http://httpd.apache.org/docs/2.2/caching.html
一个httpd.conf的配置例子:
#-----------------------------begin-------------------------
#一个连接的最大请求数量
MaxKeepAliveRequests 10000
#NT环境,只能配置这个参数来提供性能
<IfModule mpm_winnt.c>
#每个进程的线程数,最大1920。NT只启动父子两个进程,不能设置启动多个进程
ThreadsPerChild 1900
#每个子进程能够处理的最大请求数
MaxRequestsPerChild 10000
</IfModule>
LoadModule cache_module modules/mod_cache.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
<IfModule mod_cache.c>
CacheForceCompletion 100
CacheDefaultExpire 3600
CacheMaxExpire 86400
CacheLastModifiedFactor 0.1
<IfModule mod_disk_cache.c>
CacheEnable disk /
CacheRoot c:/cacheroot
CacheSize 327680
CacheDirLength 4
CacheDirLevels 5
CacheGcInterval 4
</IfModule>
<IfModule mod_mem_cache.c>
CacheEnable mem /
MCacheSize 8192
MCacheMaxObjectCount 10000
MCacheMinObjectSize 1
MCacheMaxObjectSize 51200
</IfModule>
</IfModule>
#-----------------------------end--------------------------
发表评论
文章已被作者锁定,不允许评论。
-
http返回网页状态码查询
2013-05-18 23:29 1051当你想查询某个页面的 ... -
铱迅Web应用防护系统(WAF)介绍
2013-05-04 22:41 0产品介绍 铱迅Web应用防护系统(也称:铱迅w ... -
javascript地址栏写法
2013-05-01 11:43 12140. 前言 所谓IE地址栏 ... -
javascript单引号和双引号区别
2012-09-10 16:58 791在一个网页中的按钮,写onclick事件的处理代码,不小 ... -
超链接打开目标(target)的测试
2012-05-28 12:51 819链接的target属性决定了链接在哪边打开,它的值通常为以下五 ... -
JSP中文验证码
2012-05-14 17:18 1245以上两篇文章的内容介绍了有关JSP中产生数字验证码跟中文验证 ... -
CSS简写方法说明
2011-10-26 14:15 1023简单的说,css简写就是在等效的前提下,把多句 ... -
ZK框架简介
2011-07-21 08:08 13681、ZK框架简介 ZK框架是 ... -
使用document.domain跨域实例
2011-05-29 22:42 2012Ajax跨域一直是个比较麻烦的问题,例如:断 ... -
再谈iframe自适应高度
2011-05-18 15:56 1018转自:http://ued.koubei.com/?p=243 ... -
JavaScript修改css样式style
2011-05-18 15:26 1072用JavaScript修改网页样式一、局部改变样式分为改变 ... -
关于multipart/related;boundary=
2011-05-16 09:51 3289http协议对mime类型有详细描述,multipart/ ... -
MIME邮件格式分析及信息提取
2011-05-16 09:50 2007摘 要 MIME是目前互联网邮件普遍采用的 ... -
在网页中使用Data URI嵌入Base64编码文件
2011-05-15 21:19 4891在网页中嵌入Base64编码文件 通过这种方法可以将任何文件 ... -
SSO三种方案
2011-03-11 18:13 12611、基于domain的方案。 应用A在a.domain ... -
在网页中嵌入任意字体的解决方案
2011-01-30 17:29 4381字体使用是网页设计中不可或缺的一部分。经常地,我们希望在 ... -
面向站长和网站管理员的Web缓存加速指南
2011-01-04 16:18 820原文(英文) ... -
Cookie的组成
2010-12-28 11:21 3644Cookie的组成 下面讲解一下Cookie的组成,对HTT ... -
可缓存的动态页面设计
2010-12-24 14:21 1344什么样的页面能够比较好的被缓存服务器缓存呢?如果返回内容的HT ... -
使用htmlfile隐藏IE浏览器正在打开网页状态的代码
2010-12-20 16:30 2254一般情况下,采用长连接,能持续的在客户端显示信息。 比如 ...
相关推荐
这份"Apache Server系统管理员手册"对于任何想要管理和优化Apache服务器的人来说都是宝贵的资源。手册涵盖了从基础安装到高级配置的各个层面,旨在帮助系统管理员更好地理解和操作Apache服务器。 一、Apache服务器...
Apache Ignite是一款新一代的数据库缓存系统,它为快速发展的数据存储和处理提供了显著的解决方案。Ignite支持RDBMS、NoSQL和HDFS等多种底层存储系统,以应对大规模数据的存储挑战。 随着数据量的持续增长,如何...
《Apache Server系统管理员手册》是一本专门为Apache服务器的系统管理员准备的详尽指南。这本书涵盖了Apache服务器的基础知识、安装配置、安全管理、性能优化以及故障排查等多个方面,旨在帮助读者全面理解并熟练...
Apache服务器是全球最广泛使用的Web服务器软件之一,它开源、免费且高度可定制,因此深受开发者和系统管理员的喜爱。这份“Apache Server系统管理员手册(PDG)”涵盖了从安装配置到日常维护的所有关键知识点,旨在...
Apache Ignite是一款开源的内存数据网格系统,它提供了一个分布式内存计算平台,支持数据库缓存、实时分析以及复杂事件处理等功能。在MyBatis中,二级缓存是提高数据库访问性能的重要手段,它可以将SQL查询结果存储...
为了更高效地利用内存,可以考虑实现分级缓存,比如结合Redis或Memcached等分布式缓存系统,将Tomcat缓存作为第一级,分布式缓存作为第二级,提高缓存的命中率和可扩展性。 #### 3.2 缓存策略调整 根据应用的访问...
15. **性能调优与最佳实践**:熟悉Apache服务器性能调优的策略和业界最佳实践,例如内存配置、缓存策略、Gzip压缩等。 以上只是Apache服务器系统管理员需要掌握的一部分知识,实际工作中还需要根据具体业务需求和...
六、Apache缓存模块 Apache服务器自身支持缓存模块,可以配置httpd.conf来开启缓存功能。服务器通过配置可以缓存特定的网页内容,提高响应速度。当网站外接cache或squid服务器进行Web加速时,需要激活Apache的mod_...
《Apache Server系统管理员手册》是每位负责管理和维护Apache服务器的专业人士不可或缺的参考资料。本手册涵盖了从安装配置到优化和安全防护的全方位知识,旨在帮助读者深入理解和掌握Apache服务器的运作机制。 1. ...
在IT行业中,缓存系统是优化应用程序性能的关键技术之一,特别是在处理大量数据时。Java对象缓存系统的实现涉及到了内存管理、数据结构以及分布式通信等多个领域。本项目实现了LRU(Least Recently Used)算法,这是...
Redis是一款高性能的键值存储服务,它支持多种数据结构,如字符串、哈希、列表、集合和有序集合,非常适合用作缓存系统。通过将WordPress的部分数据存储到Redis中,可以显著减少对MySQL数据库的访问,从而加快页面...
Ehcache是一个广泛使用的内存缓存系统,它可以提高应用性能,减少对数据库的访问。在仓库管理系统的场景下,Ehcache可能被用于存储频繁访问的数据,如热门商品信息,以减少数据库查询,提高响应速度。同时,Ehcache...
4. **Web服务器缓存**:Web服务器如Nginx、Apache等可以缓存静态文件,减少对应用服务器的压力。 5. **客户端浏览器缓存**:浏览器会缓存网页资源,减少对服务器的请求,提高页面加载速度。 **操作系统缓存** - ...
平台化CDN基础架构——ATS缓存系统:深入解析与展望 随着互联网的快速发展,内容分发网络(CDN)已成为保障用户体验、提升网站性能的关键技术。尤其在光纤时代,用户带宽大幅提升,移动设备普及,以及UGC(用户生成...
Apache 2.4.39 Win64 是一个专为Windows操作系统设计的最新版本的Apache HTTP服务器。这个版本是基于Apache HTTP服务器项目,一个开放源码的Web服务器软件,广泛应用于互联网上的网站托管。它的Win64版本是针对64位...
在描述中提到的".zip"文件"apache2.4.35.zip"和"apache2.4.23.zip",通常包含了Apache服务器的源代码或者二进制安装包,解压后可以直接在支持的系统上使用。用户可以根据自己的需求选择合适的版本进行部署。压缩包子...
本篇文章将深入探讨如何在MyBatis中自定义缓存配置,整合第三方缓存系统Redis。 首先,理解MyBatis的缓存机制。MyBatis提供了两级缓存:一级缓存是SqlSession级别的,存在于SqlSessionFactory内部,而二级缓存是...
也可以将APACHE服务器作为缓存服务器,缓存静态网页,以减少JBOSS服务器的压力。 JBOSS与APACHE的整合可以提高Web应用程序的性能和可扩展性,提高系统的可靠性和安全性,同时也可以降低系统的成本和复杂度。
JCS(Java Caching System)是Apache软件基金会开发的一个开源的、分布式的对象缓存系统,主要用于提高应用程序的性能和可伸缩性。它通过存储经常访问的数据到内存中,减少了对数据库或其他资源的访问,从而加快了...