运维企业实战——Varnish的缓存以及负载均衡

varnish是一款高性能、开源的反向代理服务器和缓存服务器。它可以通过将常用的合适的内容缓存到内存,以减少响应时间和网络宽带的消耗。

一、varnish实现CDN加速(缓存)

实验环境:
			客户端
			varnish端(缓存端)
			服务器端

实验步骤:

varnish端:

1、下载安装varnish软件

 yum install varnish-3.0.5-1.el6.x86_64.rpm -y
 yum install varnish-libs-3.0.5-1.el6.x86_64.rpm -y

2、修改varnish监听端口为80

vim /etc/sysconfig/varnish
66行:VARNISH_LISTEN_PORT=80

3、查看内核允许打开文件的最大数

sysctl -a | grep file

在这里插入图片描述增大内存可以打开的最大数
将server1的memory改为2048在这里插入图片描述
4、修改vernish的安全配置文件

 vim /etc/security/limits.con

在最后添加如下图:
在这里插入图片描述
5、修改varnish默认文件,配置单个后端服务器

vim /etc/varnish/default.vcl	#为varnish默认文件
 backend default {
   .host = "172.25.64.2";		#要访问的服务器IP
   .port = "80";					#80端口
 }

6、重启varnish服务

/etc/init.d/varnish restart

在服务器端的配置
1、安装httpd

 yum install httpd -y

2、在默认发布目录发布内容

cd /var/www/html
 vim index.html
 添加内容:
 <h1>server2.varnish</h1>

3、启动httpd

/etc/init.d/httpd start

在客户端测试

  curl 172.25.60.1

清除缓存
varnsh的有缓存,为了清楚的看到效果,我们做一些设置
####在varnish主机上

vim /etc/varnish/default.vcl

添加函数如下:

体现出数据从哪里来的
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "--->varnish"; 
}
else {
set resp.http.X-Cache = "--->http"; 
}
return (deliver);
}

####客户端测试:

在varnish上先清除缓存
varnishadm ban.url .*$	#清除所有缓存
varnishadm ban.url /index.html	#清除网页的缓存

第一次
在这里插入图片描述
之后:
在这里插入图片描述

二、varnish实现cdn负载均衡

实验环境:
		varnish端
		客户端
		服务器端
		服务器端

在varnish端:
1、添加服务器

vim /etc/varnish/default.vcl 


backend web1 {
  .host = "172.25.60.2";
  .port = "80";
}

backend web2 {
  .host = "172.25.60.3";
  .port = "80";
}
sub vcl_recv {
if (req.http.host ~ "^(www.)?server2.com") {
set req.http.host = "www.server2.com";          
#如果域名是www.server2.com,访问web1
set req.backend = web1;
} elsif (req.http.host ~ "^bbs.server3.com") { 
 #如果域名是bbs.server3.com
set req.backend = web2;                                 #访问web2
} else {error 404 "server cache";               #其他404报错
}
}
sub vcl_deliver {


/etc/init.d/varnish reload		#重新加载

配置server2

1、下载httpd 
	 yum install httpd -y
2、发布默认文件

    vim /var/www/html/index.html
    添加内容:
    <h1>server2.varnish</h1>
3、启动httpd
    /etc/init.d/httpd start

配置server3

1、下载httpd 
	 yum install httpd -y
2、发布默认文件

    vim /var/www/html/index.html
    添加内容:
    <h1>我是server3</h1>
3、启动httpd
    /etc/init.d/httpd start

客户端测试

1、编写本地解析
因为是本地实验,域名是自己编的,电脑不认识,我们就手动让它认识!

vim /etc/hosts
172.25.60.1 www.server2.com
172.25.60.1 bbs.server3.com

2、通过域名访问varnish代理机
在这里插入图片描述

实现负载均衡

在server1上

vim /etc/varnish/default.vcl


在里面添加轮巡函数:
director lb round-robin {     ##轮询		添加进去
        { .backend = web1; }    
        { .backend = web2; }    
}         


修改:
sub vcl_recv {	
if (req.http.host ~ "^(www.)?server2.com") {
set req.http.host = "www.server2.com";
set req.backend = lb;
启用轮询,当域名为www.server2.com时
return (pass);                 ##为了方便测试,此处不做缓存





/etc/init.d/varnish reload

在这里插入图片描述
在客户端测试:(发现可以轮巡)
在这里插入图片描述

三、配置一个主机提供多个域名服务

在server3上

vim /etc/httpd/conf/httpd.conf

在大概1000行: NameVirtualHost *:80

添加:
<VirtualHost *:80>
  DocumentRoot /www
  ServerName www.westos.org
</VirtualHost>

 <VirtualHost *:80>
	 DocumentRoot /bbs		发布目录
    ServerName bbs.westos.org	#域名
</VirtualHost>

mkdir /www
mkdir /bbs

vim  /bbs/index.html 
添加发布的内容
vim  /www/index.html 
添加发布的内容


/etc/init.d/httpd restart

在主机上:
编写本地域名解析

vim /etc/hosts

172.25.60.3 www.westos.org
172.25.60.3 bbs.westos.org

访问域名:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值