Linux中CDN缓存系统——Varnish(详细介绍、服务搭建、缓存功能、配置多个后端服务器、负载均衡)

1.1什么是varnish
Varnish 是一个 web 加速器,被安装在 web 应用程序前面,缓存 web 应用程序,并响应用求,varnish 让您的 web 应用程序运行的更快,并且 varnish 灵活好用。
Varnish是一款高性能的开源HTTP加速器,Varnish的功能与Squid服务器相似,都可以用来做HTTP缓存。 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能优越于Squid
1.2CDN的简介
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

二、搭建varnish服务
1.实验环境
三台虚拟机+一台真实主机

主机名称             ip                 功能 服务
server1            192.168.1.11          varnish        
server2            192.168.1.22           apache
server3            192.168.1.33          apache
主机localhost      192.168.1.55          客户端(client)

2.下载安装varnish软件包

http://varnish-cache.org/releases/
https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/j/jemalloc-3.6.0-1.el7.x86_64.rpm

[root@server1 Desktop]# yum install -y  varnish-6.3.2-1.el7.x86_64.rpm  jemalloc-3.6.0-1.el7.x86_64.rpm 
[root@server1 Desktop]# rpm -qa | grep varnish  查看版本信息
varnish-6.3.2-1.el7.x86_64    
[root@server1 Desktop]# rpm -qc varnish-6.3.2-1.el7.x86_64  查看服务的配置文件
/etc/ld.so.conf.d/varnish-x86_64.conf  版本信息
/etc/logrotate.d/varnish  环境变量配置文件
/etc/varnish/default.vcl  主配置语法文件

在这里插入图片描述

3.修改配置文件
打开文件的最大数,有如下关系:
内核操作> 操作系统> 软件
修改安全限制文件,保证流量大时,服务正常运行
内核允许的打开文件最大数

 [root@server1 Desktop]# vim /usr/lib/systemd/system/varnish.service  服务启动脚本
 LimitNOFILE=131072    打开
 LimitMEMLOCH=85953232  n内存锁定大小

在这里插入图片描述
在这里插入图片描述

[root@server1 Desktop]# ulimit -n  查看内存大小
1024 
[root@server1 Desktop]# vim /etc/security/limits.conf    系统参数限制文件
[root@server1 Desktop]# systemctl start varnish 启动服务

在这里插入图片描述
查看80端口是否开启(varnish)

[root@server1 Desktop]# netstat -tnpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:80 【开启】             0.0.0.0:*               LISTEN      114244/varnishd     
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN      8317/X              
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      8334/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      7896/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      7890/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      8341/master         
tcp        0      0 127.0.0.1:6082          0.0.0.0:*               LISTEN      114244/varnishd     
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::80                   :::*                    LISTEN      114244/varnishd     
tcp6       0      0 :::6000                 :::*                    LISTEN      8317/X              
tcp6       0      0 :::22                   :::*                    LISTEN      7896/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      7890/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      8341/master         
tcp6       0      0 ::1:6082                :::*                    LISTEN      114244/varnishd     

主机测试
在这里插入图片描述
在服务端配置数据源

[root@server1 Desktop]# vim /etc/varnish/default.vcl

在这里插入图片描述
在server2上配置80端口的服务

[root@server2 ~]# yum install httpd -y
[root@server2 ~]# systemctl restart httpd.service 
[root@server2 ~]# netstat -netlupe | grep httpd  端口已经开启
tcp6       0      0 :::80                   :::*                    LISTEN      0          160526     74553/httpd         
[root@server2 ~]# echo www.westos.org > /var/www/html/index.html更改默认发布页面的内容
[root@server1 Desktop]# systemctl restart varnish

在这里插入图片描述
再次测试
在这里插入图片描述
使用命令行管理varnish
在这里插入图片描述
三、Varnish缓存功能
首先配置server1主机上的varnish服务的配置文件

[root@server1 ~]# vim /etc/varnish/default.vcl 
[root@server1 ~]# systemctl restart varnish.service

在这里插入图片描述

测试主机访问server1
在这里插入图片描述

3.2实时更新缓存信息
手动清理缓存信息

[root@server1 Desktop]# varnishadm ban req.url "~" /  清除所有缓存
[root@server1 Desktop]# varnishadm ban req.url "~" /index.html  只清除index.html的缓存

在这里插入图片描述

四、varnish配置多个后端服务器(不同的域名分配到不同的后端)

[root@server1 ~]# vim /etc/varnish/default.vcl 
[root@server1 ~]# systemctl restart varnish

在这里插入图片描述

[root@server2 ~]# curl 192.168.1.22
www.westos.org
[root@server3 ~]# curl 192.168.1.33
bbs.westos.org

主机中添加解析地址
在这里插入图片描述

在这里插入图片描述

五、CDN缓存系统varnish负载均衡
两台服务器轮询接受访问请求

在这里插入图片描述

[root@server1 ~]# man vmod_directors

在这里插入图片描述

[root@server1 Desktop]# vim /etc/varnish/default.vcl

在这里插入图片描述

[root@server1 ~]# varnishadm ban req.url "~" /  手动执行清除缓存信息,每访问一次执行一次

负载均衡出现,
在这里插入图片描述
五、CDN缓存系统varnish图形化清理varnish代理服务器的缓存


[root@server1 Desktop]# yum install httpd php -y   安装所需的软件
[root@server1 Desktop]# ls
bansys(2).zip  
[root@server1 Desktop]# unzip bansys\(2\).zip -d /var/www/html/   解压到指定目录(-d)
[root@server1 html]# mv bansys/* .   移出目录中的所有文件到当前
[root@server1 html]# ls
  class_socket.php  config.php  index.php  purge_action.php  static

群组的目的是同时对多个varnish服务器进行缓存清理

 [root@server1 html]#  vim config.php

在这里插入图片描述

更改Apache服务的端口为8080和上面设置的一致
[root@server1 html]# vim /etc/httpd/conf/httpd.conf   
[root@server1 html]# systemctl restart httpd

图形化工具已经设置完成打开效果(选择http方式)
在这里插入图片描述
创建访问列表(清除缓存操作只有管理员)

[root@server1 html]# vim /etc/varnish/default.vcl 
[root@server1 html]# systemctl restart varnish

在这里插入图片描述

在这里插入图片描述

主机测试
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
主机测试
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值