Varnish代理服务器的解析以及搭建

Varnish代理服务器

Varnish是什么?

Varnish是一款高性能的开源HTTP加速器,其主要用来做为反向代理中的缓存服务器使用,varnish的设计架构就是利用操作系统的缓存机制处理访问

varnish与squid的区别:

Varnish与Squid都是一个反向代理服务器,都可用作高性能的代理缓存服务器,并且都是开源软件
    
1.Varnish稳定性很高,squid相比varnish故障几率大

2.Varnish访问速度更快,所有缓存数据都直接从内存读取,而Squid从硬盘读取缓存数据

3.Varnish支持更多的并发连接,因为Varnish的TCP连接释放要比Squid快

4.Varnish可以通过管理端口,使用正则表达式批量清除部分缓存,而Squid不能

5.Varnish进程一旦挂起、崩溃或者重启,缓存数据都会从内存中完全释放,此时所有请求都会被发送到后端服务器,在高并发情况下,这会给后端服务器造成很大压力

6.Varnish配置相比Squid简单,监控接口丰富,性能好,但Squid资料多,功能丰富,支持对ACL的访问控制

安装配置varnish反向代理服务器

客户端:本机192.168.0.100

代理服务器:192.168.0.105

网页服务器:192.168.0.101

1.安装相关支持包

yum -y install gcc readline-devel ncurses-devel pcre-devel python-docutils libtoollibxslt groff pkgconfig libedit-devel

2.编译安装varnish

tar zxf varnish-4.0.5.tar.gz

cd varnish-4.0.5

./configure --prefix=/usr/local/varnish --enable-debugging-symbols

make && make install

3.路径优化

ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/

ln -s /usr/local/varnish/bin/* /usr/bin/

4.复制配置文件模板并使用修改配置文件

cp /usr/local/varnish/share/doc/varnish/example.vcl /usr/local/varnish/default.vcl

vim /usr/local/varnish/default.vcl

修改成代理的IP地址和端口

5.启动服务访问代理服务器测试

varnishd -f /usr/local/varnish/default.vcl

varnish负载均衡群集

客户端:本机192.168.0.100

代理服务器:192.168.0.105

网页服务器1:192.168.0.101

网页服务器2:192.168.0.102

1.修改配置文件

vim /usr/local/varnish/default.vcl

4.0版本后将director编写为varnish的模块

import directors;  \\加载directors模块
#添加后端真实服务器
backend web1 {
    .host = "192.168.0.101";
    .port = "80";
}
backend web2 {
    .host = "192.168.0.102";
    .port = "80";
}
#初始化模块,定义director
sub vcl_init {
     new bar = directors.round_robin();  \\定义调度算法,  random   dns
     bar.add_backend(web1);	
     bar.add_backend(web2);
}
#设置缓存配置
sub vcl_recv {
    # Happens before we check if we have this in cache already.
    #
    # Typically you clean up the request here, removing cookies you don't need,
    # rewriting the request, etc.
    set req.backend_hint = bar.backend();    \\把流量转发给directors
    return(pass);  \\设置不进行缓存
}

启动服务访问代理服务器ip

点击刷新页面跳转到另一台服务器的页面

补充:添加健康检查配置

修改配置文件: vim /usr/local/varnish/default.vcl

backend web1 {
	.host = "192.168.0.101";
	.port = "80";
	.probe = { //开启健康检查
	.url = "/"; //请求的URL路径
	.interval = 5s; //查询间隔时间
	.timeout = 1s; //超时时间
	.window = 5; //varnish保持的结果滑动窗口,该滑动窗口是一种流量控制方法,允许发送方在停止并等待确认前可以连续发送多个分组。由于发送方不必每发送一个分组就停下来等待确认,所有此协议可以加速数据传输
	.threshold = 3; //上次检查.window数量的多少,才代表后端是健康的
	}
	}

重启服务测试

发布了37 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/feili12138/article/details/105143759