Linux下的企业级CDN的加速实现二——Varnish(多个后端服务器的部署+多个后端服务器实现负载均衡+apache虚拟主机的实现)

一.实验环境(rhel6.5版本)

主机环境:rhel6.5 selinux 和iptables 都必须是disabled状态

各主机信息

主机名IP服务
server1172.25.83.1varnish
server2172.25.83.2apache
server3172.25.83.3apache

配置server1:

 

配置server2:

  1. 安装apache服务: yum install httpd -y
  2. 在http服务默认发布目录下编写文件
  3. 编写完后/etc/init.d/httpd start 开启服务即可
[root@server2~]# yum  install  httpd  -y

[root@server2 ~]# cd /var/www/html/

[root@server2 html]# vim index.html

[root@server2 html]# cat index.html

<h1>www.westos.org server2</h1>

[root@server2 ~]# /etc/init.d/httpd   start

 

配置server3(同上):

  1. 安装apache服务: yum install httpd -y
  2. 在http服务默认发布目录下编写文件
  3. 编写完后/etc/init.d/httpd start 开启服务即可
[root@server3~]# yum  install  httpd  -y

[root@server3 ~]# cd /var/www/html/

[root@server3 html]# vim index.html

[root@server3 html]# cat index.html

<h1>www.westos.org server2</h1>

[root@server3 ~]# /etc/init.d/httpd   start

 

二.配置多个后端服务器

1.编辑varnish默认配置文件

vim   /etc/varnish/default.vcl

 

backend web1 {                  #后端第一台服务器web1
  .host = "172.25.83.2";
  .port = "80";
}

backend web2 {                  #后端第二台服务器web2
  .host = "172.25.83.3";
  .port = "80";

##以下的意思是:当客户端访问www.xin.com域名时,到web1上获取数据
##当访问bbs.xin.com域名时,到web1上获取数据
##当访问其他时,会报错
sub vcl_recv {
    if (req.http.host ~ "^(www.)?xin.com") {
        set req.http.host = "www.xin.com";
        set req.backend = lb; 
        #return (pass);
    } elsif (req.http.host ~ "^bbs.xin.com") {
        set req.backend = web2;
    } else {
        error 404 "xin cache";
    }
}

 

 

2. 修改完后,/etc/init.d/varnish   reload,重新加载varnish服务

 

 

测试端:物理机——IP为172.25.83.83

1.在真机上添加解析:vim /etc/hosts

 

 

2.测试

<1>可以在命令行测试

 

 

<2>也可以在浏览器查询;

 

 

三.实现负载均衡(在二基础上)

1.什么是负载均衡?

 

1)负载均衡(Load Balance)建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡有两方面的含义:首先,大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;其次,单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。
2)简单来说就是:其一是将大量的并发处理转发给后端多个节点处理,减少工作响应时间;其二是将单个繁重的工作转发给后端多个节点处理,处理完再返回给负载均衡中心,再返回给用户。目前负载均衡技术大多数是用于提高诸如在Web服务器、FTP服务器和其它关键任务服务器上的Internet服务器程序的可用性和可伸缩性。
 

2.负载均衡的配置

配置server1

1.编辑varnish默认配置文件

vim   /etc/varnish/default.vcl

 

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

backend web2 {
  .host = "172.25.83.3";
  .port = "80";
}

director lb round-robin {        #轮循
    { .backend = web1; }
    { .backend = web2; }
}
sub vcl_recv {
    if (req.http.host ~ "^(www.)?xin.com") {
        set req.http.host = "www.xin.com";
        set req.backend = lb;    #启用轮循
        #return (pass);          #为了方便测试,此处不做缓存
    } elsif (req.http.host ~ "^bbs.xin.com") {
        set req.backend = web2;
    } else {
        error 404 "xin cache";
    }
}

 

 

2.上述配置结束之后,/etc/init.d/varnish   reload,重新加载varnish服务

 

 

测试端:物理机——IP为172.25.83.83

<1>可以在命令行测试:当访问www.xin. org时,web1与web2轮询

 

 

 

<2>也可以在浏览器查询;

 

访问域名——www.xin.com,第一次测试:

 

 

访问域名——www.xin.com,第二次测试:

 

 

访问域名——www.xin.com,第三次测试:

 

 

访问域名——www.xin.com,第四次测试:

 

 

访问域名——bbs.xin.com,测试:

 

 

四.apache虚拟主机(一台主机多个解析)

配置server3

1.编辑server3主机http服务主配置文件,在最后添加如如下内容

 

NameVirtualHost *:80         #将990行注释去掉
##在最后添加如下内容
<VirtualHost *:80>
    DocumentRoot /bbs
    ServerName bbs.xin.com
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /www
    ServerName www.xin.com
</VirtualHost>

 

 

2.创建/www和/bbs两个目录,并在目录下编写发布文件index.html

 

[root@server3 html]# mkdir /www

[root@server3 html]# mkdir /bbs

[root@server3 html]# cd /www

[root@server3 www]# vim index.html

[root@server3 www]# cat index.html

<h1>www.xin.com server3</h1>

[root@server3 www]# cd /bbs

[root@server3 bbs]# vim index.html

[root@server3 bbs]# cat index.html <h1>

bbs.xin.com server3</h1>  

 

3.重启httpd服务:/etc/init.d/httpd restart

 

在这里插入图片描述

 

测试端:物理机——IP为172.25.83.83

1.在物理机上添加解析:vim /etc/hosts

 

 

2.测试

<1>可以在命令行测试

 

 

 

<2>也可以在浏览器查询;

 

 

 

值的注意的是:此时访问IP为虚拟主机写的位置的第一个

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值