本篇博客是在前一篇博客的母虚拟机创建的子虚拟机上进行的
在创建新的虚拟机时
需做2个操作:
1、设置网络和IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE='eth0'
ONBOOT='yes'
IPADDR=172.25.0.2
PREFIX=24
重启网络
/etc/init.d/network restart
查看IP
ip addr
查看网络是否连通
ping 172.25.10.250
2、设置主机名字
hostname server2
永久设置
vi /etc/sysconfig/network
真机连接子虚拟机1
ssh root@172.25.10.1
出现:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
解决办法
cd
vim .ssh/known_hosts
将文件里的172.25.10.1那行删除

一、部署单个后端服务器的varnish过程

先在真机中 get 两个安装包
varnish-3.0.5-1.el6.x86_64.rpm
varnish-libs-3.0.5-1.el6.x86_64.rpm
由于子虚拟机没有scp命令需要在虚拟机安装scp命令
yum rearch scp
在虚拟机中安装openssh-clients.x86_64
从主机中发送安装包至虚拟机:
scp /home/kiosk/Desktop/varnish-* root@172.25.10.1:/root
虚拟机1中:
ls
yum install * -y:

1、编辑varnish文件

###配置 varnish 服务端口
vim /etc/sysconfig/varnish66 VARNISH_LISTEN_PORT=80

在该文件中查看参数
写入 /etc/security/limits.conf中

2、编辑varnish用户的限制文件

vim /etc/security/limits.conf
在最后写
varnish       -       nofile        131073     #最多能打开的文件数,varnish会自动调整该值
varnish       -       memlock       82000      #最多能使用的内存空间,varnish会自动调整该值
varnish       -       nproc         unlimited  #单个用户所能运行的最大线程数

3、建立虚拟机2的http默认发布文件

创建虚拟机2
名称为server2,IP为172.25.10.2
真机连接虚拟机2:
ssh root@172.25.10.2
安装httpd服务
yum install httpd -y
打开服务
/etc/init.d/httpd start
到默认发布目录下创建默认发布文件
cd /var/www/html
vim index.html:www.linux.org

4、编辑varnish的默认文件

虚拟机1:
vim /etc/varnish/default.vcl
###配置一个后端服务器
backend web1 {
.host = "172.25.10.2";   # 后端服务器的ip
.port = "80";            # 后端服务器的ip
}###查看缓存命中情况
sub vcl_deliver {if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from linux cache";   # 在varnish中命中HIT访问的域名
}
else {
set resp.http.X-Cache = "MISS from linux cache";  # 后端服务器中得到MISS访问的域名
}
return (deliver);
}

5、打开服务、刷新服务

虚拟机1中:
/etc/init.d/varnish start   打开服务
/etc/init.d/varnish reload  刷新服务

6、浏览器输入172.25.10.1检验

7、测试缓存命中

真机中:
###测试缓存命中

二、具有多台后端服务器的varnish

1、创建默认发布目录

创建虚拟机3
名称为server3,IP为172.25.10.3
真机连接虚拟机3:
ssh root@172.25.10.3
安装httpd服务
yum install httpd -y
打开服务
/etc/init.d/httpd start
到默认发布目录下创建默认发布文件
cd /var/www/html
vim index.html:bbs.linux.org

2、修改varnish默认文件

虚拟机1中:
###定义多个不同域名站点的后端服务器
vim /etc/varnish/default.vcl
###配置一个后端服务器
backend web1 {
.host = "172.25.10.2";
.port = "80";
}backend web2 {
.host = "172.25.10.3";
.port = "80";
}sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from linux cache";
}
else {
set resp.http.X-Cache = "MISS from linux cache";
}
return (deliver);
}#当访问 www.westos.org 域名时从 web1 上取数据,访问 bbs.westos.org 域名时到 web2 取数据,
访问其他页面报错。
sub vcl_recv {
if (req.http.host ~ "^(www.)?linux.org") {
set req.http.host = "www.linux.org";
set req.backend = web1;
} elsif (req.http.host ~ "^bbs.linux.org") {
set req.backend = web2;
} else {error 404 "linux cache";
}
}
/etc/init.d/varnish reload  刷新服务

3、真机访问检测

真机中:

三、varnish后端服务器的负载均衡

什么是负载均衡
负载均衡(Load Balance,简称LB)是一种服务器或网络设备的集群技术。负载均衡将特定的业务(网络服务、网络流量等)分担给多个服务器或网络设备,从而提高了业务处理能力,保证了业务的高可用性。
负载均衡算法的种类有很多种,常见的负载均衡算法包括轮询法、随机法、源地址哈希法、加权轮询法、加权随机法、最小连接法等,应根据具体的使用场景选取对应的算法。在varnish中我们采用的是轮询法,平衡对待么一个后端服务器。

1、编辑httpd配置文件

虚拟机3中:
编辑httpd配置文件
vim /etc/httpd/conf/httpd.conf 990 NameVirtualHost *:80
1011 <VirtualHost *:80>
1012     DocumentRoot /var/www/html
1013     ServerName bbs.linux.org
1014 </VirtualHost>
1015 <VirtualHost *:80>
1016     DocumentRoot /www1
1017     ServerName www.linux.org
1018 </VirtualHost>


cd /var/www/html
创建发布目录
mkdir /www1
cd /www1
建立发布文件
vim index.html:www.linux.org -server3
重启服务
/etc/init.d/httpd restart

2、虚拟机3中添加地址解析

vim /etc/hosts


3、修改虚拟机2的默认发布文件

虚拟机2中:
cd /var/www/html
修改默认发布文件
vim index.html
www.linux.org -server2

4、修改虚拟机1的默认文件

虚拟机1中:
vim /etc/varnish/default.vcl
###配置一个后端服务器
backend web1 {
.host = "172.25.10.2";
.port = "80";
}backend web2 {
.host = "172.25.10.3";
.port = "80";
}director linux round-robin {
{.backend = web1; }
{.backend = web2; }
#把多个后端聚合为一个组,并检测后端健康状况
}sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from linux cache";
}
else {
set resp.http.X-Cache = "MISS from linux cache";
}
return (deliver);
}sub vcl_recv {
if (req.http.host ~ "^(www.)?linux.org") {
set req.http.host = "www.linux.org";
set req.backend = linux;  # 调用平衡轮叫函数
return (pass);  #为了测试方便,不进行缓存。
} elsif (req.http.host ~ "^bbs.linux.org") {
set req.backend = web2;
} else {
error 404 "linux cache";
}
}
/etc/init.d/varnish reload 刷新服务

5、访问测试

真机中:
curl www.linux.org
www.linux.org -server2
curl www.linux.org
www.linux.org -server3

四、CDN推送管理

varnish帮我们缓存很多的web资源,但是当后台的数据有了变化需要更新怎么办,此时就需要用到CDN的推送管理了

在真机中get 安装包
bansys.zip
主机传到虚拟机1
scp bansys.zip root@172.25.10.1:/root

1、修改httpd端口

server1:
[root@server1 ~]# yum install httpd -y
安装httpd会与varnish冲突,所以改httpd端口
[root@server1 ~]# vim /etc/httpd/conf/httpd.conf 136 Listen 8080   

2、安装服务,解压到指定目录

[root@server1 ~]# yum install php -y
[root@server1 ~]# yum install unzip -y
[root@server1 ~]# unzip bansys.zip -d /var/www/html/
[root@server1 ~]# cd /var/www/html/bansys/
[root@server1 bansys]# mv * ..
[root@server1 bansys]# cd ..
[root@server1 html]# ls

3、编辑自定义CDN群组文件

[root@server1 html]# vim config.php //varnish主机列表//可定义多个主机列表$var_group1 = array('host' => array('172.25.10.1'),'port' => '80',                  );//varnish群组定义//对主机列表进行绑定$VAR_CLUSTER = array('www.linux.org' => $var_group1,);

4、打开httpd服务,查看端口

[root@server1 html]# /etc/init.d/httpd start
[root@server1 html]# netstat -antlp
tcp        0      0 :::8080                     :::*                        LISTEN      1237/httpd          

5、编辑varnish文件

[root@server1 html]# cd /etc/varnish/
[root@server1 varnish]# vim default.vcl8 acl linux {9 #设置访问控制10 "127.0.0.1";11 "172.25.10.0"/24;12 }38 sub vcl_recv {39 40 if (req.request == "BAN") {41 if (!client.ip ~ linux) {42 error 405 "Not allowed.";43 }44 ban("req.url ~ " + req.url);45 error 200 "ban added";46 }47 48 if (req.http.host ~ "^(www.)?linux.org") {49 set req.http.host = "www.linux.org";50 set req.backend = linux;51 #return (pass);52 } elsif (req.http.host ~ "^bbs.linux.org") {53 set req.backend = web2;54 } else {error 404 "linux cache";55 }56 }
[root@server1 varnish]# /etc/init.d/varnish reload
浏览器输入http://172.25.10.1:8080
推送模式:HTTP
CDN群组:www.linux.org
推送内容:/index.html
打开另一个浏览器输入http://www.linux.org/index.html查看
真机中:
[kiosk@foundation10 ~]$ curl www.linux.org/index.html
www.linux.org  -server2
提交成功后再使用命令才变成
[kiosk@foundation10 ~]$ curl www.linux.org/index.html
www.linux.org - server3

CDN加速之varnish相关推荐

  1. CDN加速实现—varnish

    CDN介绍: 1 . 对cdn的理解: CDN的全称是(Content Delivery Network),即内容分发网络:加速器,反向代理缓存.CDN系统能够实时的根据网络流量和各节点的连接,负载状 ...

  2. 高并发大流量专题---5、CDN加速

    高并发大流量专题---5.CDN加速 一.总结 一句话总结: CDN就是多整几台节点服务器,选距离用户最近的服务器来给用户服务,实现的话可以用阿里云.腾讯云他们提供的功能,简单方便,妈妈再也不用担心我 ...

  3. CDN加速与DDOS防御

    一.  目的 实现国外节点的访问加速,分区域分线路加速,防御来自竞争对手的DDos恶意攻击,常见的延缓性CC攻击和致命的大流量攻击.针对以上的加速策略和两种攻击方式进行一些防御方案的简单介绍. 二.  ...

  4. 香港服务器CDN加速与DDOS防御方案

    一.目的 香港服务器实现国外节点的访问加速,分区域分线路加速,防御来自竞争对手的DDos恶意攻击,常见的延缓性CC攻击和致命的大流量攻击.针对以上的加速策略和两种攻击方式进行一些防御方案的简单介绍. ...

  5. 企业项目实战----CDN加速的实现

    前言 CDN加速对企业非常重要,体现在哪呢?举个例子,A企业的后端服务器在杭州,用户遍布全国,让全国的用户都去访问企业A在杭州的后端服务器你觉得可行吗?肯定不可行呀!第一,后端服务器承受不了全国这么巨 ...

  6. CloudFlare 免费CDN加速 使用方法

    前言 cloudflare 是一家国外的 CDN 加速服务商,还是很有名气的.提供免费和付费的加速和网站保护服务.百度云加速的国外节点就是和 cloudflare 合作使用的 cloudflare 的 ...

  7. github加速_使用Picgo+GitHub+ jsDelivr搭建CDN加速免费图床

    前言 经常写Markdown或者博客的同学,肯定都要用到图床.图床是什么呢?其实相当于一个存储图片的网站,类似百度云这样,不过上传图片到图床后可以直接通过外链进行访问. 比如把本地一张a.jpg上传到 ...

  8. cdn加速怎么样刷新文件

    用户在购买CDN服务之后,在使用过程中会比较关心是否有实际效果,首先大家要先确保是否已经开通成功,然后按照基本步骤添加加速域名.配置CNAME,这些都成功搞定之后,接下来就可以测试CDN是否加速成功了 ...

  9. CDN加速服务有什么功能和作用?

    CDN一词相信很多朋友都不会陌生,网上也经常会看到相关报道.或许大部分人都知道CDN加速可以提升网站的打开速度及用户下载资源的速度,而同时也有不少小白朋友还不清楚CDN是什么?有什么用途?它是如何实现 ...

最新文章

  1. 去除浏览器ip检测_浏览器怎么多开换ip,每个窗口不同的独立IP-VMLogin中文版指纹浏览器...
  2. 手动创建一棵二叉树,然后利用前序、中序、后序、层序进行遍历(从创建二叉树到各种方式遍历)(含运行结果)
  3. 超详细的Java常用时间操作工具类
  4. FLEX SharedObject介绍及应用
  5. vue.extend的问题
  6. PHP Class中public,private,protected,static的区别
  7. 前端学习(1707):前端系列javascript之promise
  8. si_meminfo获取当前系统物理内存使用情况
  9. prim算法_数据结构 7.4.1 最小生成树 Prim
  10. java基础-对象-练习集锦
  11. idea maven repositories为空
  12. 【Linux】修改镜像源
  13. 健身管理系统一站式智能化健身管理体验
  14. 一文通透优化算法:从随机梯度、随机梯度下降法到牛顿法、共轭梯度
  15. ASP.NET 安全认证(一)—— 如何运用 Form 表单认证 (摘自 http://blog.csdn.net/cityhunter172)
  16. ns手柄pc驱动_支持amiibo和体感!switch游戏手柄莱仕达天弓NS体验
  17. 关于c语言杨辉三角编写的改进
  18. Linux配置squid正向代理(标准正向代理)
  19. gps转百度地图坐标 java,GPS坐标与百度地图坐标转换
  20. moon-util工具

热门文章

  1. 2.4海明校验码循环冗余校验码
  2. RS Meet DL(59)-FM家族的新朋友FAT-DeepFFM
  3. Glide图片框架使用详细介绍(一)
  4. 高压设备用Inconel 625镍基高温合金
  5. android的刷机方式
  6. 分享第一次教资面试经历,没过就五月见~加油
  7. Data,DB,DBMS,DBS,DBA
  8. 【Jenkins学习之路】-jenkins任务构建之选项详解
  9. win7怎么找回回收站里删除的文件?
  10. mysql基础数据库