前提提要:
第一个介绍的是《让网站飞起来01---浏览器缓存技术》
介绍服务器,肯定要先支持服务器在网站架构中的位置和作用,然后在介绍几种常见的服务器缓存配置。
正文
对服务器在网站中位置作用有个大概了解:lamp架构图
上图主要介绍了三种服务器,也是比较常用的服务器,下面就介绍这三种服务器的缓存配置。
服务器缓存技术
-
apche缓存配置:
apache2.2支持mod_cache和mod_file_cache两个模块,官方手册的说明:
mod_cache
实现了一个RFC
2616兼容的HTTP本地缓存(web服务器)或HTTP代理缓存(代理服务器)。mod_cache
需要一个或多个存储管理模块提供的服务才能正常工作。目前官方发布的存储管理模块有两个:
mod_disk_cache
一个基于磁盘的存储管理模块。
mod_mem_cache
一个基于内存的存储管理模块。mod_mem_cache
可以被配置为两种不同的操作模式:①缓存打开的文件描述符;②在堆(heap)上缓存对象。mod_mem_cache
既可以用于缓存本地生成的内容,也可以用于为反向代理模式下的mod_proxy
(参见ProxyPass
)缓存后端服务器输出的内容。
使用方法:
-
编译mod_cache,mod_mem_cache,mod_disk_cache 模块
Cd /root/httpd-2.2.3/modules/cache
/usr/local/apache/bin/apxs -i -a -c mod_cache.c cache_util.c cache_cache.c cache_storage.c cache_pqueue.c cache_hash.c //编译
/usr/local/apache/bin/apxs -i -a -c mod_mem_cache.c //编译
/usr/local/apache/bin/apxs -i -a -c mod_disk_cache.c //编译
添加:
<IfModule mod_cache.c>
#内存缓存
<IfModule mod_mem_cache.c>
CacheEnable mem /images
MCacheSize 4096
MCacheRemovalAlgorithm LRU
MCacheMaxObjectCount 100
MCacheMinObjectSize 1
MCacheMaxObjectSize 2048
CacheMaxExpire 864000
CacheDefaultExpire 86400
#CacheDisable /php
</IfModule>
#硬盘缓存
<IfModule mod_disk_cache.c>
CacheRoot /home/cache
#CacheSize 256
CacheEnable disk /
CacheDirLevels 4
#CacheMaxFileSize 64000
#CacheMinFileSize 1
#CacheGcDaily 23:59
CacheDirLength 3
</IfModule>
</IfModule>
/usr/local/apache/bin/apachectl restart //重启apche
1,CacheEnable mem /images 缓存images下面的内容,这里的 mem只是一个缓存类型,指示mod_cache使用内存的存储管理器通过实施mod_mem_cache 。缓存类型disk指示mod_cache使用基于磁盘的存储管理的实施mod_disk_cache 。缓存类型,fd指示mod_cache使用文件描述符缓存实施mod_mem_cache
2,MCacheSize最大内存使用量,插入在缓存和对象大小的对象是大于剩余内存,将被删除,直到新的对象可以被缓存。 被删除的对象选择使用指定的算法MCacheRemovalAlgorithm
3,MCacheRemovalAlgorithm缓存算法:
LRU
(最近最少使用)
LRU
删除文件,没有时间最长的被访问的。
GDSF
(GreadyDual尺寸)
GDSF
分配一个优先的文件缓存文件的费用的基础上,缓存大小和怀念。以最低的优先权文件被删除第一次。
4,MCacheMaxObjectCount最大缓存对像个数
5,MCacheMaxObjectCount最大缓存对像字节数
6,MCacheMinObjectSize最小缓存对像字节数
7,CacheMaxExpire 最大缓存结止时间
8,CacheDefaultExpire 默认缓存结止时间
9,CacheDisable /php 不缓存php下面的内容
硬盘缓存参数说明;
1,cacheroot /cache 缓存存放的目录
2,#CacheSize 256 缓存空间大小单位KB
3,CacheEnable disk / 设置缓存方式
4,#CacheMaxFileSize 64000 最大缓存文件大小
5,#CacheMinFileSize 1 最小缓存文件大小
6,#CacheGcDaily 23:59 缓存清理时间
7,CacheDirLength 3 缓存文件夹名子字符长度
8,CacheDirLevels 4 缓存目录,子目录层次
关于参数说明和更多的学习参考:http://blog.51yip.com/apachenginx/898.html
http://apache.jz123.cn/mod/mod_cache.html
nginx缓存配置
nginx是一个很好的静态服务器,很适合存放静态文件如css,图片,视频文件等等,可以很好的减去服务器的鸭梨!
nginx的缓存配置主要使用 proxy_cache模块实现,工作原理就是就用户请求缓存到本地的某个目录下,当再次请求时候,直接读取缓存,从而减轻服务器鸭梨
配置nginx.conf,下面是一个经典的缓存配置
03
|
error_log / var /log/nginx_error.log
crit;
|
04
|
worker_rlimit_nofile
65535;
|
08
|
worker_connections
65535;
|
14
|
default_type
application/octet-stream;
|
16
|
server_names_hash_bucket_size
128;
|
17
|
client_header_buffer_size
32k;
|
18
|
large_client_header_buffers
4 32k;
|
19
|
client_max_body_size
8m;
|
26
|
fastcgi_connect_timeout
300;
|
27
|
fastcgi_send_timeout
300;
|
28
|
fastcgi_read_timeout
300;
|
29
|
fastcgi_buffer_size
64k;
|
30
|
fastcgi_buffers
4 64k;
|
31
|
fastcgi_busy_buffers_size
128k;
|
32
|
fastcgi_temp_file_write_size
128k;
|
34
|
proxy_connect_timeout
5;
|
35
|
proxy_read_timeout
60;
|
37
|
proxy_buffer_size
16k;
|
39
|
proxy_busy_buffers_size
128k;
|
40
|
proxy_temp_file_write_size
128k;
|
41
|
proxy_temp_path
/home/temp_dir;
|
42
|
proxy_cache_path
/home/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
|
48
|
gzip_http_version
1.1;
|
49
|
gzip_types
text/plain application/x-javascript text/css application/xml;
|
50
|
gzip_disable "MSIE
[1-6]\." ;
|
52
|
log_format
access '$remote_addr
- $remote_user [$time_local] "$request" '
|
53
|
'$status
$body_bytes_sent "$http_referer" '
|
54
|
'"$http_user_agent"
$http_x_forwarded_for' ;
|
60
|
server_name
www.gangpao.com;
|
61
|
location
~ .*\.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) {
|
64
|
proxy_set_header
Host $host ;
|
65
|
proxy_cache
cache_one;
|
66
|
proxy_cache_valid
200 302 1h;
|
67
|
proxy_cache_valid
301 1d;
|
68
|
proxy_cache_valid
any 1m;
|
71
|
location
~ .*\.(php)(.*){
|
73
|
proxy_set_header
Host $host ;
|
74
|
proxy_set_header
X-Real-IP $remote_addr ;
|
75
|
proxy_set_header
X-Forwarded-For $proxy_add_x_forwarded_for ;
|
77
|
access_log
/usr/local/nginx/logs/www.gangpao.com.log;
|
1、http段设置。
proxy_temp_path /home/temp_dir;设置临时目录
proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;设置缓存目录为二级目录,共享内存区大小,非活动时间,最大容量,注意临时目录要跟缓存目录在同一个分区。
2、server段设置
请求静态文件设置。
proxy_cache cache_one;设置缓存共享内存区块,也就是keys_zone名称。
proxy_cache_valid 200 302 1h;设置http状态码为200,302缓存时间为1小时。
expires 30d;设置失期时间,为30天
请求动态文件设置。
proxy_pass http://appserver;不进行缓存,直接转到后端服务器
测试:当客户端发起http请求时在服务器上会产一个缓存文件如
/home/cache/0/b9/8bd841b1c44ee5b91457eb561e44eb90
更详细的参数说明:
http://wiki.nginx.org/NginxChsHttpProxyModule#proxy_cache_valid
http://linux008.blog.51cto.com/2837805/547236
squid的缓存配置
之前没有接触过squid,这些都是现学的,下面介绍一下squid:
Squid是一个高性能的代理缓存服务器,可以加快内部网浏览Internet的速度,提高客户机的访问命中率。Squid不仅支持HTTP协议,还支持FTP、gopher、SSL和WAIS等协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
Squid将数据元缓存在内存中,同时也缓存DNS查寻的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。Squid支持SSL,支持访问控制。由于使用了ICP,Squid能够实现重叠的代理阵列,从而最大限度的节约带宽。
Squid能够增强访问控制,提高安全性。可以针对特定的的网站、用户、网络、数据类型实施访问控制等
安装squid---安装是最新的版本
下载:wgethttp://www.squid-cache.org/Versions/v3/3.1/squid-3.1.15.tar.gz
tar xzvf squid-3.1.15.tar.gz
cd squid-3.1.15
./configure --prefix=/usr/local/squid
make && make install
******************************安装ok
配置文件:
vi /usr/local/etc/squid.conf
visible_hostname raymond-linux
# cache服务器的名称
# 缓存管理员
cache_mgr webmaster@example.com
# 如果不能访问,需要 http_access deny !Safe_ports 改为allow或将 3128加入 safe_ports
# 也可配置监听80端口,并配置为加速模式
http_port 3128 vhost vport
# cache服务器之间通信的端口UDP
icp_port 3130
# 当然cache_peer还可以设置兄弟节点、上级cache服务器等等,这里这设置了源服务器地址
# 设置上级根服务器的地址,也就是电信源服务器地址
cache_peer 172.20.35.251 parent 82 0 no-query originserver name=myAccel
# cache目录和大小的设置,1GB硬盘空间和256M内存
#前面已经设置 cache _dir /var/spool/squid
#cache_dir ufs /usr/squid/var/cache 256 16 256
cache_mem 16 MB
cache_peer_access myAccel allow all
#最大缓存文件大小,超过这个值则不缓存,这个值因人而异
cache_swap_low 90
cache_swap_high 95
maximum_object_size 20000 KB
#装入内存缓存的文件大小,这个值对Squid的性能影响比较大,因为默认值是8K,超过8K的文件都不装入内存,而实际应用中很多网页和图片等都超过8KB, 个人认为如果缓存不装入内存而存在磁盘上,性能和apache直接读取磁盘文件没什么区别,甚至不如直接访问apache,现在设置成小于4兆的文件通通装入内存缓存.
maximum_object_size_in_memory 4096 KB
# 主机文件路径
hosts_file /etc/hosts
# 设置日志目录和日志格式#squid
pid_filename /var/log/squid/squid.pid
#已在前面配置 access_log /var/log/squid/access.log squid
#已在前面配置 cache_log /var/log/squid/cache.log
#已在前面配置 cache_store_log /var/log/squid/store.log
#模拟apache 日志格式
emulate_httpd_log on
#设置不想缓存的目录或者文件类型,动态文件,大文件不缓存。不过一般最好缓存
#已在前面配置 acl all src 0.0.0.0/0.0.0.0
acl QUERY urlpath_regex cgi-bin .php .cgi .avi .wmv .rm .ram .mpg .mpeg .zip .exe
cache deny QUERY
# 允许所有用户访问 , 要打开
http_access allow all
#apache ip
acl apache_server dst 127.0.0.1
http_access allow apache_server
#正向代理,这里不需要
#acl our_sites dstdomain sohu.com
#http_access allow our_sites
生成cache目录
/usr/local/squid/sbin/squid –z
自动生成
启动squid
./squid
参考资料:http://blog.51yip.com/server/638.html
相关推荐
尊天缓存是高并发高性能的缓存系统 帮您的服务器真正的飞起来 下面是性能测试数据: os:windows server 2008 x64 cpu:AMD Athlon tm 2 core 3 5G 3 5G mem:4G 64线程 数据 次 秒 add : 2566787 read : 4764566 ...
Linux运维-4.服务管理-003DNS服务-2视频-037缓存服务器.avi
服务器缓存设置 工具 服务器缓存设置 工具 服务器缓存设置 工具
redis缓存服务器
缓存服务器
反向代理:其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标...
SAS缓存-关闭工具(服务器磁盘读取慢可以用此工具关闭硬盘缓存功能。)
suqid 缓存服务器整理的相关内容,可以参考的。适合于centos7系统的
tmcache 大致就是一个类似于Memcache的缓存服务器,用过的应该都大致了解它的执行过程,为了便于理解,我简单描述一下。 发送请求过程: 客户端(PHP/Java/C++) --> 缓存服务器 --> 内存(共享内存) 接收数据过程...
查看服务器缓存工具
一般来说,在互联网上都有可信赖的网域服务器,但为减低网络上的流量压力,一般的域名服务器都会把从上游的域名服务器获得的解析记录暂存起来,待下次有其他机器要求解析域名时,可以立即提供服务。一旦有关网域的...
详解大型网站web服务器缓存.zip cdn缓存 反向代理缓存 应用程序缓存 分布式缓存 为什么要设置缓存过期时间 三种缓存方案
存储系统-缓存-磁盘学习
memcachedb是 一个由新浪网的开发人员开放出来的开源项目,给memcached分布式缓存服务器添加了Berkeley DB的持久化存储机制和异步主辅复制机制
饼图,缓存-饼图,缓存-饼图,缓存-饼图
WEB缓存功能对于一个规模较大、访问繁忙的网络来说是有必要的,IBM网站上的一篇文章,详细分析介绍了WEB缓存给上网用户带来的好处: http://www-900.ibm.com/developerWorks/cn/web/webcachinga/index.shtml ...
分布式缓存-基于Redis集群解决单机Redis存在的问题。分布式缓存-基于Redis集群解决单机Redis存在的问题。分布式缓存-基于Redis集群解决单机Redis存在的问题。分布式缓存-基于Redis集群解决单机Redis存在的问题。...
一个采用Python开发的简单缓存服务器
memcached介绍 memcached安装 memcached操作 内存存储机制 数据过期与删除机制 php操作memcached 多服务器集群算法 缓存无底洞效应 缓存雪崩 老数据被踢现象 结课作业
TMS320C6748 DSP视频教程-10-缓存 TMS320C6748 DSP视频教程-10-缓存 10-1-缓存 上 10-2-缓存 下