varnish缓存负载均衡backend的实现

author author     2022-09-28     581

关键词:

简介:

varnish是一款高性能并且开源的反向代理服务器和http加速器,据官方称可有300-1000倍的速度提升,它采用了全新的软件体系结构,和现在的硬件体系紧密结合,和传统的squid相比,varnish具有性能更高、速度更快、管理更加方便等诸多优点,很多大型的网站都开始尝试使用varnish来替代squid,这些促进了varnish的快速发展。

varnish在架构中扮演的结构角色拓扑图:

技术分享

Varnish的负载均衡实验步骤:

环境准备:

在虚拟机上准备3centos7,一台做varnish,其它两台做后端服务器。

Varnish.server          varnish4.0      192.168.146.138       Centos7    

backend_server1       httpd2.4      192.168.146.136          Centos7

backend_server1       httpd2.4      192.168.146.137            Centos7

 

在三台主机主机上关闭防火墙和selinux

关闭防火墙:

centos7

systemctl disable firewalld.service       #是让开机启动时关闭防火墙

systemctl stop firewalld.service          # 现在关闭防火墙

 iptables –F                    #清除防火墙策略

关闭selinux

sed -i s/^SELINUX=enforcing/SELINUX=disabled/etc/selinux/config

 

 

安装光盘自带的varnish软件包和httpd:

192.168.146.138varnish服务器上安装varnish

yum –y install varnish

在后端服务器上安装httpd并启动服务

yum –y install httpd

systemctl start httpd


varnish上的配置:

把默认的8080端口改成80

Vim /etc/varnish/ varnish.params

# VARNISH_LISTEN_ADDRESS=192.168.1.5

VARNISH_LISTEN_PORT=80

 

声明负载均衡:

在主配置文件下/etc/varnish/default.vcl

定义backend主机

import directors;

定义后端服务器的子例程

backend srv1 {

.host ="192.168.146.137";  #指明后端主机

.port = "80";

.probe = healty;

}

backend srv2 {

    .host = "192.168.146.136";

    .port ="80";

    .probe = healty;

}

vcl_recv中调用

set req.backend_hint = srvs.backend(); 

因缓存的作用需要设置不缓存的方式才可检测出来

Sub vcl_recv {

  Set req.backend_hint = webservers.backend();

    if (req.url ~"(?i)^/(login|admin)") {

     return(pass);

}varnishadm登陆命令行终端

varnishadm -S /etc/varnish/secret-T 127.0.0.1:6082

 

加载vcl配置

Vcl.load test1 default.vcl

编译配置文件

use.test1

 

backend后端服务器的配置测试httpd页面

136服务器的配置

cd /var/www/html

mkdir login

echo <h1>login page @BE2</h1> > /login/index.html

136服务器的配置

cd /var/www/html

mkdir login

echo <h1>login page </h1> > /login/index.html

 

 

在浏览器上输入192.168.146.138/login,就可以看到本次是轮询方式,看到负载均衡实现了

技术分享


技术分享

本文出自 “12180356” 博客,请务必保留此出处http://12190356.blog.51cto.com/12180356/1979166

基于haproxy+varnish实现动静分离负载均衡的高可用集群

拓扑结构介绍        在实际的生产使用过程中,一个基本的能够应对日均百万PV的网络,一般会具有以下几种结构。650)this.width=650;"src="http://ot2trm1s2.bkt.clouddn.com/Linux/2017-11-01-linux-pro-command-6/%E5%9F%B 查看详情

haproxy+varnish+lnmp实现高可用负载均衡动静分离集群部署

HAProxy高可用负载均衡集群部署  基本信息:  系统平台:VMwareWorkStation  系统版本:CentOSLinuxrelease7.2.1511(Core)  内核版本:3.10.0-327.el7.x86_64   集群架构:  前端:HAProx 查看详情

varnish实战项目

实现基于Keepalived+Haproxy+Varnish+LNMP企业级架构原理:缓存,又称加速器,用于加速运行速度较快的设备与较慢设备之间的通信。基于程序的运行具有局部性特征其能实现加速的功能一、环境准备1.1相关配置机器名称IP配置服务角色... 查看详情

haproxy+varnish+amp集群实现动静分离

    一、简介    Haproxy一个高性能的负载均衡服务软件,它可基于四层和七层之间进行调度,而且对各个节点具有健康状态检测的功能,当后端服务器故障时,会自动标记为不可用状态,当服务器上... 查看详情

大型电商网站系统架构分层设计

...有针对小文件所做的优化,其效果比公司自行部署Squid、Varnish更好、更专业,BindView也需要精准细分,而且价格相当低廉,所覆盖的边缘节点也比较多,所以这里推荐采用CDN租赁的方式。很多企业喜欢尝试自建CDN,这是一个比较... 查看详情

解析大型电商网站系统架构分层设计

...有针对小文件所做的优化,其效果比公司自行部署Squid、Varnish更好、更专业,BindView也需要精准细分,而且价格相当低廉,所覆盖的边缘节点也比较多,所以这里推荐采用CDN租赁的方式。很多企业喜欢尝试自建CDN,这是一个比较... 查看详情

实现基于keepalived+haproxy+varnish+lnmp企业级架构

...centos6的keepalived+haproxy的架构,缓存服务器是基于centos7的varnish搭建的缓存服务。2、服务安装lnmp:mariadb-server-5.5.52-1.el7.x86_64nginx-1.10.2-1.el7.x86_64php-fpm-5.4.16-42.el7 查看详情

nginx---负载均衡和缓存(代码片段)

Nginx---负载均衡负载均衡概念负载均衡的原理及处理流程负载均衡的作用负载均衡常用的处理方式方式一:用户手动选择方式二:DNS轮询方式方式三:四/七层负载均衡Nginx七层负载均衡Nginx七层负载均衡的指令upstream指令server指令Nginx... 查看详情

varnish部署

...器目前比较有名气,市面上缓存代理服务器使用比较多的Varnish/squid。squid的主要是缓存大文件。Varnish主要缓存静态资源,如图片。Varnish版本的区别:新版本Varnish4,client/backend分离,新的vanishlog查询语 查看详情

Varnish 自动将负载均衡器 IP 添加到 X-Forwarded-For 标头

】Varnish自动将负载均衡器IP添加到X-Forwarded-For标头【英文标题】:VarnishautomagicallyaddingloadbalancerIPtoX-Forwarded-Forheader【发布时间】:2014-10-2221:40:28【问题描述】:我的请求流程如下;HAProxy-->Varnish(4.0.1)-->Apachewebbackends当HAProxy收... 查看详情

varnish知识点介绍

导读:互联网的发展使用户不断的增加,历史数据不断积累,业务不断增长,系统的响应速度、请求的处理能力开始下降,CPU和磁盘IO处理能力会成为瓶颈。如果在有限的硬件投入前提下,提高系统性能就成了主要解决问题的手... 查看详情

基于haproxy+keepalive+varnish实现lnmp企业级架构

...主)服务器B:haproxy服务器(备)服务器C:LNMP服务器、varnish服务器服务器D:LNMP服务器、varnish服务器二、实验要求前端负载均衡器实现keepalived高可用。并且实现对于图片和静态资源的请求,代理到后端webserver缓存varnish服务上... 查看详情

什么是负载均衡(搬运)

...迟大服务器升级不方便。我们知道DNS与用户之间是层层的缓存,即便是在故障发生时及时通过DNS修改或摘除故障服务器,但中间由于经过运营商的DNS缓存,且缓存很有可能不遵循TTL规则,导致DNS生效时间变得非常缓慢,有时候一... 查看详情

nginx负载均衡原理

...。负载均衡涉及到以下的基础知识。a.RoundRobin:对所有的backend轮训发送请求,算是最简单的方式了,也是默认的分配方式;b.LeastConnections(least_conn):跟踪和backend当前的活跃连接数目,最少的连接数目说明这个backend负载最轻,将请... 查看详情

kubernetes-ingress支持tcp/udp的负载均衡

参考技术A配置默认的backend为了让IngressController正常启动,需要给它配置一个默认的backend,用于当客户端访问的URL地址不存在时,能够返回一个正确的404应答。这个backend服务用任何应用实现都可以,只要满足默认对/path的访问返... 查看详情

haproxy负载均衡

环境:Ha主机:192.168.10.33backend主机1:192.168.10.35backend主机2:192.168.10.38客户端:192.168.10.184一.调度方式:roundrobin:轮询调度static-rr:静态轮询,当更改权重或者其他配置,必须要重新加载服务才能生效leastconn:最少连接调度。source:基于I... 查看详情

负载均衡ribbon

...bon是从eureka注册中心服务器端上获取服务注册信息列表,缓存到本地,让后在本地实现轮训负载均衡策略。 既在客户端实现负载均衡Nginx适合于服务器端 查看详情

nginx实现负载均衡

...上面的示例中,每7个请求将按如下方式分配:5个请求去backend1.example.com向第二台和第三台服务器分别发送一个请求。如果在与服务器通信过程中发生错误,请求将被传递到下一个服务器,依此类推,直到所有的功能服务器将被... 查看详情