Varnish-缓存服务器和负载均衡

一. varnish 下载与安装

1. 下载:

登陆官网

2.  安装:

yum install -y varnish-6.4.0-1.el7.x86_64.rpm

二. 配置varnish

配置文件:

查看varnish配置文件

rpm -qc varnish-6.3.1-1.el7.x86_64  

查看varnish启动脚本

vim /usr/lib/systemd/system/varnish.service

查看系统打开最大文件数

sysctl -a | grep file-max

最大文件数无法满足varnish,这种情况下我们可以通过增加主机内存或将varnish最大文件数改小。

查看系统内存限制

vim /etc/security/limits.conf

启动服务,查看端口

systemctl start varnish
netstat -antuple | grep varnish

三. varnish 使用

1. 反向代理

修改端口:

这里改为80端口,是因为要做http服务端代理,http默认访问80端口,不影响客户感知 

在浏览器访问

可以访问到varnish,现阶段因为当前服务端还没有数据 

配置varnish,将请求交给node2的80端口

vim /etc/varnish/default.vcl

node2主机当前还没有80端口

在node2上配置httpd服务,启用80端口

再次访问浏览器,可以获取到node2上的内容 

也就是说我们在访问node1时,请求被调度到node2上,因此访问到的是node2中的内容

2. 缓存

修改varnish配置,添加返回信息(http)并说明是读取缓存还是新数据

vim /etc/varnish/default.vcl

重启服务

systemctl restart varnish

访问:

    1. CDN推送

kefu@csdn.netQQ客服

客服论坛400-660-0108

工作时间 8:30-22:00

关于我们招聘广告服务 网站地图

京ICP备19004658号 经营性网站备案信息

公安备案号 11010502030143

京网文〔2020〕1039-165号

©1999-2020 北京创新乐知网络技术有限公司 网络110报警服务

北京互联网违法和不良信息举报中心

中国互联网举报中心家长监护

版权与免责声明版权申诉

varnish【缓存服务器和负载均衡】

dsd2333 2020-04-30 11:28:12  62  收藏  原力计划

展开

Table of Contents

1. varnish下载与安装

2. 配置varnish

3. varnish使用

反向代理

缓存

请求转发

负载均衡

CDN推送


1. varnish下载与安装

安装包网上都可以搜索到,这里我就不赘余介绍了,这里我已经将其放在Apache默认发布目录下,直接通过lftp连接,使用get下载

将.rpm文件下载好后,就可以直接安装了,步骤很简单,就不详细介绍了,直接贴图

2. 配置varnish

  • 查看配置文件
rpm -qc varnish-6.3.1-1.el7.x86_64  # 查看varnish配置文件

  • 查看varnish启动脚本
vim /usr/lib/systemd/system/varnish.service

最大文件数131072,默认内存限制82MB

  • 查看系统打开最大文件数
sysctl -a | grep file-max

最大文件数是97757,很明显无法满足varnish,这种情况下我们可以通过增加主机内存将varnish最大文件数改小

  • 查看系统内存限制

系统内存限制为64,明显小于varnish的82

vim /etc/security/limits.conf

  • 启动服务,查看端口
 
  1. systemctl start varnish

  2. netstat -antuple | grep varnish

3. varnish使用

反向代理

  • 修改端口

这里改为80端口,因为要做http服务端代理,http默认访问80端口,不影响客户感知 

  • 在浏览器访问node1

以发现,可以访问到varnish,现阶段因为当前服务端还没有数据

  • 配置varnish,将请求交给node2的80端口
vim /etc/varnish/default.vcl

但是node2主机当前还没有80端口

  • 在node2上配置httpd服务,启用80端口

再次访问浏览器,会发现已经获取到node2上的内容

也就是说我们在访问node1时,请求被调度到node2上,因此访问到的是node2中的内容

缓存

修改varnish配置,添加返回信息(http)并说明是 读取缓存 还是 新数据

vim /etc/varnish/default.vcl

重启服务

systemctl restart varnish
  • 访问node1

这是我们第一次访问,因此没有命令缓存,显示的是MISS from varnish cache。

再次访问:

从第二次访问开始,内容都是从缓存中读取的,不需要再次重新从源服务器获取。

手动清理缓存 (默认120s自动清理缓存)

varnishadm ban req.url "~" /   
varnishadm ban req.url "~" /index.html
#  / 表示所有缓存
#  / index.html 只表示这个页面

清理完缓存后

3. 请求转发

添加一个服务器node3,编辑请求转发模块,请求都是从node1发出的,经过调度均分到node2或者node3:

当访问 xxx.dsd.org 时转化为 www.dsd.org,访问的服务器是web1

当访问 bbs.dsd.org  时访问的服务器是web2

如果访问的是其他域名,报错

重启varnish

在node3安装并开启httpd服务,并修改默认发布页面

编辑本地解析文件

vim /etc/hosts

测试

4. 负载均衡

通过负载均衡,使得服务器轮循的接受请求

寻找所需库文件:

编辑varnish配置文件:

backend:定义好两个后端

初始化:round_robin()表示轮循接受

定义请求转发:当访问 www.dsd.org 时,会轮循访问两个服务器

要求不缓存:因为会产生缓存,没有办法看到实际的轮循效果,在这里设置不缓存

访问 www. dsd.org 时会做负载均衡分配给 node2 和 node3,而 bbs.dw.org 未做负载均衡 

5. CDN推送

下载安装bansys.zip

编辑配置文件并修改端口号

vim /var/www/html/bansys/config.php
vim /etc/httpd/conf/httpd.conf

访问node1的8080端口

但是这个时候所有人都能访问。但是在实际生活中,只能让部分管理员有权限去推送,这就需要去做权限管理

vim /etc/varnish/default.vcl

编辑一个acl,用来插入允许访问的ip

在recv中添加和php通信部分 

curl -I www.dw.org

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值