varnish介绍:
Varnish是一款高性能、开源的反向代理服务器和缓存服务器。Varnish使用内存缓存文件来减少响应时间和网络带宽消耗。
由于varnish先进的设计理念,性能要比squid高上许多, varnish还可以通过端口进行管理,使用正则语句做到清除指定缓存的功能,这些squid都做不到。但是varnish在高并发的情况下,资源消耗较高,而且varnish服务进程一~旦崩溃 ,重启,内存中的缓存数据将全部丢失
varnish是基于现代设备设计的服务项目,所以仅支持64位系统。Manager Preess负责处理请求任务,保证每个任务分配一个worker threads。所以varnish是一 个重线程型服务。 除此之外,manager process包含接受CL命令控制的功能,包括调整运行参数,vcl|配置更新。初始化子进程Cacher Process ,并按一定频率检测cacher在线与否。

**制作varnish代理服务器

首先准备环境 编译环境

yum install -y gcc gcc-c++ make

关闭防火墙或者设置防火墙规则

systemctl stop firewalld
setenforce 0

安装所需依赖插件

yum install -y \
libtool \
ncourses-devel \
pcre-devel \
libedit-devel \
libxslt \
groff \
pkgconfig \
ncurses-devel \
python-*

安装所需的依赖包

rpm -ivh libedit-devel-3.0-12.20121213cvs.el7.x86_64.rpm
rpm -ivh python-docutils-0.11-0.2.20130715svn7687.el7.noarch.rpm

解压软件包

tar xf varnish-5.2.1.tgz -C /opt

进入解压后的文件夹中定义需要的模块

cd /opt/varnish-5.2.1/

检查系统环境

sh autogen.sh

定制功能

./configure \
--prefix=/usr/local/varnish \
--enable-debugging-symbols \
--enable-developer-warnings

编辑安装

make && make install

软连接

cd /usr/local/varnish/
ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/
ln -s /usr/local/varnish/bin/* /usr/local/bin/

配置文件模板拷贝出来用

cp /usr/local/varnish/share/doc/varnish/example.vcl /usr/local/varnish/default.vcl
或者cp /opt/varnish-5.2.1/etc/example.vcl /usr/local/varnish/default.vcl

进入配置文件

vi /usr/local/varnish/default.vclg

注:.host 是代理httpd服务的IP地址

指定监听的ip和端口启动varnish

varnishd -f /usr/local/varnish/default.vcl -a 0.0.0.0:80

在另一台linux虚拟机上搭建一个web服务器:

yum install -y httpd
vi /var/www/html/index.html
<h1>server 1</h1>
systemctl start httpd
测试,在windows浏览器中输入http://192.168.80.100(varnish服务器的ip地址)
结果图·

Varnishlog #查看日志,实时滚动方式

以上是单台代理服务器·
多带代理服务器如下:

vi /usr/local/varnish/default.vcl
找到以下内容并修改:
vcl 4.0;
import directors; //新增一行,导入一个directors

-----以下增加业务服务器节点-----
backend web1 { #把default修改为web1,就是后面的web服务器,有几个web节点就复制几个backend域
.host = "192.168.80.101"; #后端web服务器的地址
.port = "80"; #web服务器端口
}
backend web2 {
.host = "192.168.80.102";
.port = "80";
}

-----接着以上代码接着定义调度算法及指定流量转发----
sub vcl_init { #在init子函数中定义
new bar = directors.round_robin(); //random(随机) round_robin dns
#定义服务器组,让新的 bar 等于之前定义的变量directors,后面接轮询(rr)算法
bar.add_backend(web1); #注意这里有几个backend就添加几个
bar.add_backend(web2);
}
sub vcl_recv {
set req.backend_hint = bar.backend(); //流量转发给所有结点 注意括号
}


检查配置文件是否有错误

varnishd -C -f /usr/local/varnish/default.vcl > /dev/null
出现以下代表没有错误

杀死进程

pkill -9 varnish

开启服务

varnishd -f /usr/local/varnish/default.vcl

查看服务是否启动

netstat -anpt | grep varnishd

注:由于varnish缓存的原因,当我们访问varnish的时候,并没有像我们预期的那样根据rr算法各自访问后面两台web服务器的不同页面,这时我们让一台web服务器网络中断,这时varnish就会访问到另一台了。

后端主机健康检测机制:

vi /usr/local/varnish/default.vcl
probe healthche { 定义健康检测方法,自定义名称
.url="/index.html"; #检测时请求的URL,默认为"/"
.timeout = 2s; #超时时间
.window = 6 ; #基于最近的多少次检测来判断其健康状态
.threshold = 5; #最近.window中定义的这么次检查中至有.threshhold定义的次数是成功的;
.interval = 2s; #检测频度;
}
在定义后端服务器时引用检测方法
backend web1 {
.host = "1921.68.80.100";
.port = "80";
.probe = healthche;        #引用检测方式
}

查看效果
varnishadm

转载于:https://blog.51cto.com/14150862/2349908

Linux varnish代理服务器安装以及健康检查相关推荐

  1. linux网络健康度检测,linux运维、架构之路-K8s健康检查Health Check

    一.Health Check介绍 强大的自愈能力是k8s容器编排引擎一个重要特性,自愈能力的默认实现方式为自动重启发生故障的容器,另外还可以利用Liveness和Readiness探测机制设置更精细的 ...

  2. Linux Varnish

    Linux Varnish     Web Cache:一般的大型网站架构都会使用缓存,缓存一般位于前段代理与后端服务器之间,当用户发出请求以后,会首先通过代理查找缓存,如果缓存中有相关的数据就直接反 ...

  3. slb健康检查方式_SLB健康检查也是“正常”-问答-阿里云开发者社区-阿里云

    负载均衡通过健康检查来判断后端服务器(ECS实例)的业务可用性.健康检查机制提高了前端业务整体可用性,避免了后端ECS异常对总体服务的影响. 开启健康检查功能后,当后端某台ECS健康检查出现异常时,负 ...

  4. 运维企业专题(8)LVS高可用与负载均衡后篇——LVS健康检查与高可用详解

    实验准备 1.下面的实验使用的是rhel6系列(rhel6.5)的虚拟机,因此你需要有对应的镜像和yum源 2.准备三台虚拟机,为了区分主机名与IP分别为 server1 172.25.6.1 ser ...

  5. Nginx的UDP健康检查

    Nginx的UDP健康检查 本章介绍如何为负载平衡的上游服务器组中的UDP服务器配置不同类型的运行状况检查. 先决条件 被动UDP健康检查 主动UDP运行状况检查 微调UDP运行状况检查 " ...

  6. Nginx的TCP运行时健康检查

    Nginx的TCP运行时健康检查 本章介绍如何配置TCP的运行状况检查. 介绍 先决条件 被动TCP运行状况检查 服务器缓慢启动 活动TCP运行状况检查 微调TCP运行状况检查 "匹配&qu ...

  7. Nginx负载均衡配置和健康检查

    Nginx负载均衡配置和健康检查 注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. nginx的强大之处不必要我细说,当初第一次接触ngin ...

  8. 负载均衡 > 用户指南 > 健康检查 > 健康检查概述

    健康检查概述 更新时间:2019-08-16 15:46:34 编辑我的收藏 本页目录 健康检查过程 HTTP/HTTPS监听健康检查机制 TCP监听健康检查机制 UDP监听健康检查 健康检查时间窗 ...

  9. 磨刀不误砍柴工,ORAchk健康检查好帮手

    ORAchk 之前被称为RACcheck,后来它的检查范围进行了扩展,改名为了ORAchk,它是在数据库系统进行健康检查的一个专用工具,这个工具主要用来检查软件的配置是否符合要求以及一些最佳实践是否被 ...

最新文章

  1. linux反汇编暴力破解,逆向教程之-反编译apk暴力去除弹窗和更新提示(三)
  2. 后门怎么写隐蔽java_用Java写黑软-后门篇
  3. PHP经典项目案例-(一)博客管理系统5
  4. 商业认知,在创业的时候,有人今天做服装不赚钱,就换了餐饮;换了餐饮业不赚钱,又继续换?
  5. 2019.3.9笔试
  6. pandas基础实例
  7. 获取 服务器文件列表,云对象获取服务器的文件列表
  8. QCustomplot使用分享(一) 能做什么事
  9. Visio 2003 Professional 安装序列号
  10. python下stl格式转换off格式
  11. centos下载和安装mongodb
  12. CVE-2022-28512 Fantastic Blog CMS 1.0 版本存在SQL注入漏洞
  13. 【计算机网络】---局域网
  14. appium元素坐标定位TouchAction
  15. JS 实现数字转换为大写中文金额
  16. RAW和QCOW2 两种存储设备格式区别
  17. 如何选择一款适合你的外贸管理软件
  18. Docker实战-部署GPE微服务的监控体系
  19. 电厂、电网、电力公司、供电局 之间关系 清理
  20. 简析热得快的单向好友关系

热门文章

  1. Java并发编程艺术----读书笔记(二)
  2. 【转】monkeyrunner学习总结二:连接、安装、启动
  3. IIS负载均衡-Application Request Route详解第一篇: ARR介绍
  4. netapp学习(十三)---Snapshot基础知识(上)
  5. 安装phpredis扩展
  6. 增大减小LV大小和文件系统
  7. Nodejs教程14:querystring模块
  8. Call to undefined function mysql_connect()
  9. WSGI,uWSGI,uwsgi,Nginx
  10. 数据库查询构建控件集Active Query Builder