安装varish作为缓存和代理

1,Varish的使用有两种模式:
第1种 Nginx(负载)+varish(缓存)+WEB
第2种Varish(缓存和负载)+web

2,varish是以内存作为共享容器的:
内存的大小决定了它的缓存容量。相对于主要以硬盘为存储的squid来说要高效的多。它适合一些经常查询且变化不大的静态内容缓存。

Nginx 图片和静态文本给 varish 后端是WEB的8080端口
动态内容给后端WEB 后端是WEB的8080端口
这个架构要看服务器和存储内容,如果nginx不用做反向代理以支持后台诸多应用的话,那么单就nginx来说,利用proxy_cache模块也可以支持本地缓存。它缓存在硬盘上,性能和squid相差不大,但是稳定性和易用性要好的多。

3,安装varish:
1)创建用户和组,赋予权限groupadd www
useradd -g www www
mkdir -p /car/vcache
chown -R www:www /var/vcache

2)创建varnish日志目录并授权mkdir -p /var/log/varnish
chmod +w /var/log/varnish
chown -R www:www /var/log/varnish

3)编译安装varnish
tar zxvf varnish-1.1.2.tar.gz
cd varnish-1.1.2
./configure --prefix=/usr/local/varnish
make && make install

4)创建并修改配置文件vi /usr/local/varnish/vcl/conf

backend default { #通过反向代理请求后端IP为192.168.0.5,80端口的WEB服务器,可以是本机,也可以是后台 .host = "192.168.0.151";
.port = "81";
}

acl purge { #允许这三个来源的IP通过PURGE方法清除缓存 "localhost";
"127.0.0.1";
"192.168.1.0"/24;
}

sub vcl_recv {
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "Not allowed."; #405错误显示 }
return(lookup);
}

if (req.http.host ~ "^blog.s135.com") {
set req.backend = default;
if (req.request != "GET" && req.request != "HEAD") {
return(pipe);
}
else {
return (lookup);
}
}
else {
error 404 "Not in cache"; #404错误显示 return(lookup);
}
}

sub vcl_hit {
if (req.request == "PURGE") {
set obj.ttl = 0s;
error 200 "Purged.";
}
}

sub vcl_miss {
if (req.request == "PURGE") {
error 404 "Not in cache.";
}
}

sub vcl_fetch {
if (req.request == "GET" && req.url ~ "/.(txt|js)$") {
set obj.ttl = 3600s; #对于txt和js缓存一个小时 }
else {
set obj.ttl = 30d; #其余的缓存一天 }
}
Varnish对HTTP协议中的GET、HEAD请求进行缓存,对POST请求透过,让其直接访问后端Web服务器。之所以这样配置,是因为POST请求一般是发送数据给服务器的,需要服务器接收、处理,所以不缓存;
5)启动ulimit -SHn 51200
/usr/local/varnish/sbin/varnishd -a :80 -b 192.168.0.151:81 -p thread_pool_max=1500 -p thread_pools=5 -p listen_depth=512 -w 1,10000,120
6)将访问日志写入访问文件/usr/local/varnish/bin/varnishncsa -n /var/vcache -w /var/log/varnish/varnish.log &

7)查看状态
8)测试
我们用varish监听80端口,同时将数据来源转向到监听81端口的Apache
访问主页
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值