教你搭--高性能缓存服务器varnish
建站服务器
Varnish是一款高性能的、开源的反向代理服务器和缓存服务器。计算机系统的内存除了主存外,还有CPU的L1、L2,甚至L3级别的缓存。Varnish的设计架构就是利用操作系统的缓存机制处理访问
http://varnish-cache.org/
10多年的洞口网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整洞口建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“洞口网站设计”,“洞口网站推广”以来,每个客户项目都认真落实执行。实验拓扑:
Varnish服务器: 192.168.80.101
WEB服务器1: 192.168.80.102
WEB服务器2: 192.168.80.103
Varnish服务器配置:
yum install -y \\
libtool \\
ncourses-devel \\
pcre-devel \\
libedit-devel \\
libxslt \\
groff \\
pkgconfig \\
ncurses-devel \\
python-*
rpm -ivh /root/libedit-devel-3.0-12.20121213cvs.el7.x86_64.rpm
rpm -ivh /root/python-docutils-0.11-0.2.20130715svn7687.el7.noarch.rpm
tar xzvf varnish-5.2.1.tgz -C /opt
cd /opt/varnish-5.2.1
sh autogen.sh //检查环境
echo $? //是0就没问题
./configure \\
--prefix=/usr/local/varnish \\
--enable-debugging-symbols \\
--enable-developer-warnings
make && make install
cd /usr/local/varnish/
ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/
ln -s /usr/local/varnish/bin/* /usr/local/bin/
cp /usr/local/varnish/share/doc/varnish/example.vcl /usr/local/varnish/default.vcl
vi /usr/local/varnish/default.vcl //修改主机和端口号为第一台业务服务器
backend default {
.host = "192.168.80.102"; //第一台web服务器的ip地址
.port = "80";
}
varnishd -f /usr/local/varnish/default.vcl -a 0.0.0.0:80 //启动varnishd
netstat -anpt | grep varnishd //监听在80端口上
service firewalld stop
setenforce 0
WEB服务器1配置:
yum install -y httpd
vi /var/www/html/index.html
server AA!!!
service httpd start
service firewalld stop
setenforce 0
验证测试:
真机:http://192.168.80.101/ //访问varnishd服务器的地址,能够访问到第一台服务器内容
varnishlog //实时滚动日志,当页面刷新的时候日志会记录
tail –f /var/log/httpd/access_log //在业务服务器端查看日志信息,可以看到访问的是代理端
地址
---------------------------------配置多服务器负载---------------------------
Varnish服务器配置:
vi /usr/local/varnish/default.vcl
vcl 4.0;
import directors; //新增一行,导入一个directors
-----以下增加业务服务器节点-----
backend web1 {
.host = "192.168.80.102";
.port = "80";
}
backend web2 {
.host = "192.168.80.103";
.port = "80";
}
-----接着以上代码接着定义调度算法及指定流量转发----
sub vcl_init {
new bar = directors.round_robin(); //random(随机) round_robin dns
bar.add_backend(web1);
bar.add_backend(web2);
}
sub vcl_recv {
set req.backend_hint = bar.backend(); //流量转发给所有结点 注意括号
}
varnishd -C -f /usr/local/varnish/default.vcl > /dev/null //检查配置文件是否有错误
pkill varnishd
varnishd -f /usr/local/varnish/default.vcl
netstat -anpt | grep varnishd
WEB服务器2配置:
yum install -y httpd
vi /var/www/html/index.html
server BB!!!
service httpd start
service firewalld stop
setenforce 0
验证:
http://192.168.80.101/ //刷新测试就可以了看到轮询的效果了
停止一台服务器WEB1,调度器并不感知。
以下配置健康检查----在每台业务服务器配置下接着新增
web1配置
backend web1 {
.host = "192.168.80.102";
.port = "80"; //下面新增
.probe = {
.url = "/";
.interval = 5s;
.timeout = 1s;
.window = 5;
.threshold = 3; //3次检查没有问题才认为健康
}
}
---web2配置相同----
backend web2 {
.host = "192.168.80.103";
.port = "80";
.probe = {
.url = "/";
.interval = 5s;
.timeout = 1s;
.window = 5;
.threshold = 3;
}
}
varnishd -C -f /usr/local/varnish/default.vcl > /dev/null
pkill varnishd
varnishd -f /usr/local/varnish/default.vcl
netstat -anpt | grep varnishd
浏览器测试,并关闭一台业务服务器2再测试。注意客户端浏览器缓存问题。不会再跳转关闭服务器内容了。
当前标题:教你搭--高性能缓存服务器varnish
文章URL:http://azwzsj.com/article/cpidgh.html