让网站飞起来02--服务器缓存

news/2024/5/9 23:24:02/文章来源:https://blog.csdn.net/iteye_3952/article/details/82159893

前提提要:

第一个介绍的是《让网站飞起来01---浏览器缓存技术》

介绍服务器,肯定要先支持服务器在网站架构中的位置和作用,然后在介绍几种常见的服务器缓存配置。

正文

对服务器在网站中位置作用有个大概了解:lamp架构图

LAMP网站架构方案分析

上图主要介绍了三种服务器,也是比较常用的服务器,下面就介绍这三种服务器的缓存配置。

服务器缓存技术

  1. 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 //编译

  • 编辑httpd.conf文件

添加:

<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,下面是一个经典的缓存配置

01 user www www;
02 worker_processes 2;
03 error_log/var/log/nginx_error.log crit;
04 worker_rlimit_nofile 65535;
05 events
06 {
07 useepoll;
08 worker_connections 65535;
09 }
10
11 http
12 {
13 includemime.types;
14 default_type application/octet-stream;
15
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;
20
21 sendfile on;
22 tcp_nopush on;
23 keepalive_timeout 0;
24 tcp_nodelay on;
25
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;
33 ##cache##
34 proxy_connect_timeout 5;
35 proxy_read_timeout 60;
36 proxy_send_timeout 5;
37 proxy_buffer_size 16k;
38 proxy_buffers 4 64k;
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;
43 ##end##
44
45 gzip on;
46 gzip_min_length 1k;
47 gzip_buffers 4 8k;
48 gzip_http_version 1.1;
49 gzip_types text/plain application/x-javascript text/css application/xml;
50 gzip_disable"MSIE [1-6]\.";
51
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';
55 upstream appserver {
56 server 192.168.1.251;
57 }
58 server {
59 listen 80default;
60 server_name www.gangpao.com;
61 location ~ .*\.(gif|jpg|png|htm|html|css|js|flv|ico|swf)(.*) {
62 proxy_pass http://appserver;
63 proxy_redirect off;
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;
69 expires 30d;
70 }
71 location ~ .*\.(php)(.*){
72 proxy_pass http://appserver;
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;
76 }
77 access_log /usr/local/nginx/logs/www.gangpao.com.log;
78 }
79 }

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

Squid中文权威指南http://home.arcor.de/pangj/squid/

知识共享许可协议本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名PHP淮北(包含链接),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_807014.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Digital Ocean 搭建属于自己的网站

首先&#xff0c;需要Digital Ocean账号申请以及环境搭建的参考博客&#xff1a;https://blog.csdn.net/hunzhangzui9837/article/details/85209245 下面&#xff0c;开始Digital Ocean 网站搭建 1、WDCP的安装和管理 WDCP相当于一个服务器管理界面&#xff0c;可以直接在we…

Mozilla出了个网站安全评估工具 93%的网站居然都不合格

2019独角兽企业重金招聘Python工程师标准>>> Mozilla的安全工程师April King发现&#xff0c;世界上绝大多数的网站 - 高达93.45&#xff05; - 并没有实施许多现代安全技术&#xff0c;为用户提供安全的连接&#xff0c;并保护他们免受跨站点的攻击脚本&#xff08…

构架高性能WEB网站的几点知识

构架高性能WEB网站的几点知识 前言&#xff1a; 对于构架高性能的web网站大家都很感兴趣&#xff0c;本文从几点粗谈高性能web网站需要考虑的问题。 HTML静态化 什么是html静态化&#xff1f; 说得简单点&#xff0c;就是把所有不是.htm或者.html的页面改为.htm或者.html 1.纯静…

高性能建站之前端优化篇

高性能建站之前端优化篇 2011-10-25 17:50 by PHP淮北, 560 visits,收藏,编辑 前言&#xff1a; 这算是对前端优化的总结吧&#xff0c;之前零零星星总结和学习&#xff0c;这次做一个完整的总结。 测试网页性能工具 ⑴Page Speed&#xff1a; 谷歌开发的工具&#xff0c;网…

8个应该去逛逛JQuery的学习网站

根据国外科技网站 W3Techs 一项调查了近100万个网站数据显示&#xff0c;jQuery是目前最流行的 JavaScript 库。对于初学者来说&#xff0c;有的时候很难找到一个好的学习jQuery的网站&#xff0c;所以本文收集了8个很棒的 jQuery 学习网站推荐给大家。 1. Learning jQuery 最…

Hexo博客yilia主题使用cnzz统计网站访问量

使用友盟第三方的统计插件&#xff0c;网址&#xff1a;http://www.umeng.com/ 进入网站先注册账号然后根据下列图片进入添加站点。 添加站点&#xff0c;自己搭建的博客&#xff0c;需要统计访问量的网站(这里加入我的博客网站)&#xff0c;然后点击统计代码进入代码页 代码页…

网站刷关键词_关键词快速排名靠谱吗?应该如何判断

企业要想在竞争激烈的市场中&#xff0c;赢得更多用户的关注&#xff0c;如果没有把网站的排名优化到显眼的地方&#xff0c;是很难实现变现的。如果想提升网站的排名&#xff0c;通过不断优化网站关键词而实现的。企业想快速实现关键词排名&#xff0c;于是网络上就出现很多“…

Linux系列-Red Hat5平台下的LAMP网站服务搭建(一

Linux系列-Red Hat5平台下的LAMP网站服务搭建&#xff08;一&#xff09; 编译安装Apache服务器&httpd服务的基本配置 LAMP架构是目前最为成熟的一种企业网站应用模式&#xff0c;指的是协同工作的一整套系统和相关软件&#xff0c;能够…

蝉知网站模板常用的Jquery

1.因为蝉知调用到ZUI的缘故&#xff0c;所有class类名会比较多&#xff0c;有时候方便操作样式&#xff0c;常用到去除类名&#xff1a; <p class"chanzhi">Its a wonderful website.</p> 如果class有样式设计复杂影响设计&#xff0c;则可以去除class类…

仿站和模板建站的区别_建站方式多种,哪个比较适合?

网站制作一年350元&#xff0c;五站合一&#xff0c;快速建站 &#xff0c;www.sxjcwzjs.com,只需进入网站右上角注册快速建站即可(需要电脑登录注册)&#xff0c;需要联系我吧&#xff01;电话&#xff1a;13752214574&#xff0c;微信号&#xff1a;m1078582894做网站一般分为…

mobi格式电子书_几个超赞的免费电子书下载网站(支持kindle)

作者 / 青柠学术来源 / 公众号(青柠学术)全文共1312字&#xff0c;推荐阅读时间4分钟。现在有很多电子书阅读爱好者&#xff0c;下面分享给大家一些电子书的下载网站&#xff0c;相信你会在这些网站找到你想要看的电子书、以及你想要的格式的电子书&#xff01;--壹--书语者书语…

mixamo网站_使用mixamo动捕数据在blender中实现写实动画

Mixamo是adobe旗下的一个基于web的在线3D人物动画制作平台&#xff0c;最重要的是它提供了丰富、免费的动作捕捉数据供下载。下面介绍如何将动捕数据下载并导入blender制作动画。1.mixamo动捕数据下载。网站地址&#xff1a;https://www.mixamo.com首先完成注册&#xff0c;只有…

免费音乐素材网站推荐 视频剪辑自媒体运营必备

各位各位各位&#xff01;各位宝贝&#xff01;今天俺又来跟大家推荐宝藏音乐素材网站了&#xff01;不管是日常剪辑还是自媒体运营我们都会用到一些BGM&#xff0c;但是有很多网站是收费的&#xff0c;又或者免费但音乐十分难听&#xff0c;今天就来跟大家分享一波小V君私藏的…

自媒体运营、平面设计封面如何搭配?3大色彩搭配网站推荐

之前给大家分享了很多无版权的图片网站、音乐素材网站&#xff0c;但日常设计我们常常会遇到配色的问题&#xff0c;不管是设计作图、动效制作还是自媒体封面都需要用到配色&#xff0c;不同的色彩搭配也会出现不同的效果。今天就来跟大家分享一波神仙配色设计网站。 一、Cool…

图片压缩后模糊怎么办 这5款无损压缩网站你要知道

不少小伙伴一定有过过上传Gif动图提示动图体积过大的糟糕体验&#xff0c;同时还有MP4转Gif动图压缩率过高&#xff0c;导致图片模糊的看不清的体验。今天阿昊要推荐给大家的就是五款图片压缩&视频转换神器&#xff0c;无损&#xff01; 1.Aconvert&#xff08;全能王-视频…

我要自学网polyworks_感谢这6个自学网站,每天坚持学习一小时,现在我月薪30000...

工资不是很满意&#xff1f;想要提高自己的薪资水平&#xff1f;可以收藏这6个自学网站&#xff0c;每天坚持学习一个小时&#xff0c;升职加薪都不是问题。1、 Udacity专业的自学编程网站&#xff0c;可以在这里学习HTML&#xff0c;CSS&#xff0c;Javascript&#xff0c;Pyt…

圣诞素材网站推荐 这几个网站超多免费可商用素材

圣诞马上就要到了&#xff0c;不少小伙伴肯定避免不了发pyq或者精彩的特效小视频&#xff0c;在此就需要一些精美的圣诞插画、图片等素材&#xff0c;今天给大家整理了N个素材网站&#xff0c;提供给大家使用~ 1.Freepik&#xff08;超多精美图片资源&#xff09; 链接&#x…

2022年设计流行趋势如何把握?5大设计素材网站提供灵感

2022已经到来&#xff0c;新的一年设计行业也有新的趋势&#xff0c;今天就来跟大家分享一波设计素材网站&#xff0c;来给大家提供设计灵感。 01 Dribbble&#xff08;设计师必备的灵感网站&#xff09; 在Dribbble可以看到当前顶尖设计师的设计&#xff0c;提升欣赏能力和眼…

wap2app(一)-- 网站快速打包成app

工具&#xff1a;HBuilder&#xff0c;下载地址&#xff1a;http://www.dcloud.io/ 下载并安装HBuilder后&#xff0c;打开编辑器&#xff0c;选择&#xff1a;文件 -> 新建 -> 项目&#xff0c;出现如下图&#xff1a; 选择wap2app&#xff0c;填入项目名称&#xff0c;…

资深站长干货:小说网站从建立到盈利全解析

从2007年做站&#xff0c;刚好十年了。时间过得真快。因为自己是兼职做站&#xff0c;所以一直断断续续&#xff0c;也没有什么大的成绩。做过地方论坛&#xff0c;电影站&#xff0c;股票站&#xff0c;文章站&#xff0c;小说站等&#xff0c;能尝试的都尝试了。学了很多东西…