存档

文章标签 ‘缓存’

发一个自己用的squid.conf

2010年9月10日 eric 82 条评论

squid 3.1.X 有段时间了,发一个简单的配置文件:

squid $> cat /usr/local/squid/etc/squid.conf
visible_hostname nginxs.com
cache_effective_user www
cache_effective_group www

acl Safe_ports port 80
acl host dstdomain www.ninxs.com
acl localhost src 127.0.0.1/255.255.255.255
acl snmp src 192.168.6.102/255.255.255.255
acl manager proto cache_object
acl CONNECT method CONNECT
acl PURGE method PURGE

http_access allow manager localhost            # 只允许 本地访问 manager
http_access allow PURGE localhost               # 只允许 本地访问 PURGE
http_access deny manager                         # 其他的一律拒绝访问 manager
http_access deny !Safe_ports                     # 其他不是设置的 安全端口一律拒绝
http_access allow host                              # 只允许反向大代理 host = www.nginxs.com 域名站点
http_access deny all                                  # 其他的一律拒绝
分类: squid 标签: , ,

squid 缓存动态连接

2010年8月27日 eric 105 条评论

由于网站的访问量越来越大,用户播放视频,都要从web服务器拿文件,而且又是动态连接,要调用一个php-cgi进程,这样的话很浪费资源,所以要加缓存服务器。但是问题来了,squid 默认是不缓存动态页面的,google 了半天,发现很多人的文章没有一个说到正点上的。最后自己不停的做测试,看squid.conf.documented,把问题解决了,所以就记录下来,以便以后大家遇到同样的问题。好解决。

列子:

http://www.nginxs.com/nginx/Grec.php?id=eric&b.php?=aaa

首选用 curl 抓 head头。

nginx $> curl -I http://www.nginxs.com/nginx/Grec.php
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 27 Aug 2010 06:49:43 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: Accept-Encoding
X-Powered-By: PHP/5.2.13
Set-Cookie: PHPSESSID=2d4523a7c6a5a54dbb20f64f3bc04be3; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache

看红字部分,然后在看 squid.conf.documented 对应的部分

#       options: override-expire
#                override-lastmod
#                reload-into-ims
#                ignore-reload
#                ignore-no-cache
#                ignore-no-store
#                ignore-must-revalidate
#                ignore-private
#                ignore-auth
#                refresh-ims
#

把 Cache-Control 的信息,squid对应有违规则 那么我们修改 squid.conf

分类: squid 标签: , ,

nginx的proxy_cache缓存取替Squid

2010年4月14日 eric 6 条评论

早就看到nginx wiki 有提到 proxy_cache,由于一直没有看到大家对他报有身好评,所以一直也没有做测试,今天闲下来,开了两个虚拟机测试了一下,效果不错,后期准备实战一下。

Nginx proxy_cache 缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302这样的非 200状态码。虽然目前官方的Nginx Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面,但是,通过一个第三方的Nginx 模块,可以清除指定URL的缓存。

测试环境:

www.nginxs.com nginx-proxy_cache

192.168.6.188 nginx

1. 下载编译安装 nginx

Wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.02.tar.bz2

Tar jxvf pcre-8.02.tar.bz2

Cd pcre-8.02

./configure –prefix=/usr –enable-utf8 –enable-pcregrep-libbz2 –enable-pcregrep-libz

Make

Make install

wget http://labs.frickle.com/files/ngx_cache_purge-1.0.tar.gz

Tar zxvf ngx_cache_purge-1.0.tar.gz

分类: nginx 标签: , , ,

安装配置varnish-2.1

2010年4月13日 eric 78 条评论

说明:以前安装过varnish 1.1.2版本,并发大了CPU会飙升到99%,这个BUG很令人头疼,所以就放弃了在也没有关注过,最近看他官方站,有更新就安装了看了下,有所提升,但是现在没有实体机也没有做大量的并发测试,虚拟做压力测试也没有什么意意~

引用:

Varnish简介
Varnish 是一款高性能且开源的反向代理服务器(Reverse Proxy Server),挪威最大的线上报纸 Verdens Gang 使用3台Varnish代替了原本的12台Squid, 性能比以前更好。Varnish 的作者 Poul-Henning Kamp 是 FreeBSD 核心的开发人员之一,他认为现在的电脑比起1975年已经复杂许多。在那个时代,存储媒介只有两种:记忆体与硬盘。但现在电脑系统的记忆体除了主记忆体外,还包括了CPU内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此squid cache自行处理物件替换的架构不可能得知这些情況而做到最佳化,但作业系统可以得知这些情況,所以这部份的工作有关交给作业系统处理,这就是 Varnish Cache 的设计架构。
一般來说,使用Varnish代替Squid的理由有三点:

1.Varnish采用了“Visual Page Cache”技术,在记忆体的利用上,Varnish 比 Squid 更具有优势,它避免了Squid频繁在记忆体、硬盘中交换文件,性能比 Squid 还高。
2. Varnish的稳定性高,进行相同工作的Squid服务器发生故障的几率似乎比Varnish高。
3. 通过Varnish管理端口,可以使用正则表达式、批量地清除部分缓存,这一点是Squid不能具备的。

Linux 系统安裝 Varnish 的过程:
1. 代码快速获取地址:

wget http://cdnetworks-kr-1.dl.sourceforge.net/project/varnish/varnish/2.1/varnish-2.1.tar.gz

wget wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.02.tar.bz2

分类: varnish 标签: , ,