nginx反代+varnish缓存+后端LAMP平台集群实现
较为完善的集群实现方式,前端两台LVS主机进行调度转发到前端的两台nginx反代服务器,由nginx反代服务器将请求资源转发到后端的varnish主机中,若varnish缓存服务器中存在所请求资源的缓存,则由varnish主机向nginx反代服务器进行响应,再有nginx服务器向客户端进行响应(不向调度器响应是因为采用的是LVS DR模型)。若varnish中不存在缓存,则直接向后端RS主机请求资源,到达varnish后,varnish会判断该资源是否能够缓存,若可以被缓存,则缓存下来待下次资源访问时由缓存服务器对nginx进行响应,大大减小了后端RS的压力。后端RS分为动态资源服务器,静态资源服务器以及图片资源服务器,访问不同资源则由varnish进行动静分离操作,向后端不同主机进行资源申请。
nginx服务器:
第一台nginx本机IP:
eno16777736:192.168.72.2
eno33554976:172.16.25.1
第二台nginx本机IP:
eno16777736:192.168.72.3
eno33554976:172.16.25.2
keepalived高可用虚拟IP:
eno16777736:192.168.72.20
eno33554976:172.16.25.100
keepalived配置:
keepalived的配置项在这里就不再讲述了,前面都有讲过。主要就是对nginx的状态进行一个判断
若nginx down掉了,则将权重值-10,MASTER降为BACKUP(抢占模式)。当MASTER中的nginx
启动后,又会自动成为MASTER,虚拟IP就由MASTER掌控。
nginx反代配置:
172.16.25.77为后端varnish的IP,使用proxy_pass的方式反代,实际上再加一台varnish服务器
只需要修改upstream中的内容,使用hash一致性算法对varnish进行高可用。
varnish服务器:
IP:172.16.25.77
yum install -y varnish
配置文件/etc/varnish/varnish.param:运行时参数的配置,如varnish线程池得多少,每个线程池的线程数目有多少等。
配置文件/etc/varnish/default.vcl进行编辑:varnish运行的策略库,根据该策略库判断数据是否缓存等。
前端nginx反代到后端时采用的是80端口,所以需要将varnish监听在80端口这样才能正确获取到前端请求。
修改/etc/varnish/varnish.param
将VARNISH_LISTEN_PORT修改为80端口,原来为6081,该端口为服务端口,6082为管理端口
/etc/varnish/default.vcl配置:
设置反代到后端的两个主机,可以进行健康状态监测,如
probe = {
url = /health.html
timeout = 3s
interval = 2s
window = 5
threahold = 3 (5次检测有三次成功则表示后端RS正常)
}
vcl_purge为缓存裁剪,对不需要的缓存进行删除,常用于缓存更新。
vcl_recv为所有请求数据都必须经过的一个状态引擎的表示,在这里对数据进行静态分离,
当请求的方法为dele,则表示对该资源进行裁剪,当请求的资源存在.php则表示该资源为
动态资源,发往动态资源服务器web2,否则发往静态资源服务器web1.在这里可以对资
源服务器进行扩展,若动静态资源服务器有多台,则可以设置vcl_init
如
vcl_init {
new websrv = directors.backend_roundrobin();
websrv.add_backend(webstat1);
websrv.add_backend(webstat2);
}
将两台静态服务器 都添加至websrv中,类似于nginx中的upstream
调用时使用set req.backend_hint = websrv.backend();即可。
注意:在使用组调度方式时,需要在配置文件顶部添加
启动varnish服务
systemctl start varnish.service
使用varnishadm加载default.vcl文件
后端RS的LAMP配置在这里就不多说了;
运行结果:
访问静态资源
访问动态资源
访问phpMyAdmin
转载于:https://blog.51cto.com/12480612/2049331
nginx反代+varnish缓存+后端LAMP平台集群实现相关推荐
- Nginx反代Mogilefs分布式储存示例
2019独角兽企业重金招聘Python工程师标准>>> 一.分布式存储系统简介 随着信息技术不断的发展,给我们带来便利的同时,不断增加的数据量级.信息之间的连接关联越来越复杂.数据访 ...
- API接口的加速利器-varnish使用大全(含生产集群环境布署)
Varnish是什么 这是一张标准的新零售行业中的微服务化组件从前到后的架构概览图. 我们都知道,凡是静态内容,一般我们都有cdn来进行缓存,cdn缓过的内容之前会从cdn处返回给到前端流量层客户端. ...
- EFK6.3+kafka+logstash日志分析平台集群
转载来源 :EFK6.3+kafka+logstash日志分析平台集群 :https://www.jianshu.com/p/f956ebbb2499 架构解读 : 第一层.数据采集层 安装fileb ...
- 宝塔反代默认缓存了html吗,宝塔面板安装 OneList 设置反代
OneList介绍OneList 基于GoLang 支持 国际版,个人免费版(家庭版), 中国版(世纪互联) 支持同时列出多个盘的目录(要求每个盘的SubPath唯一) 支持文件夹内超过 200 个项 ...
- Nginx之反向代理、日志格式、集群、缓存、压缩、URl 重写,读写分离配置
location的模式匹配按照优先级由低到高有以下四种: Nginx作为一个优秀的Web服务器,不仅在处理静态内容上比Apache优秀,还经常被用来做反向代理服务器,且支持缓存,URL重写,自定义格式 ...
- Zabbix(六):项目实战之--自动发现nginx调度器及后端web服务集群、自定义参数监控...
项目: 1.自动发现nginx调度器及后端apache构建的web服务集群: 2.使用自定义参数监控调度器上nginx服务的相关统计数据及速率数据: 3.使用自定义参数监控后端apache服务的相关统 ...
- Nginx+Keepalived+Tomcat之动静分离的web集群
为小公司提供大概一天持续在100万/日之间访问的高性能.高可用.高并发访问及动静分离的web集群方案 Nginx+Keepalived 高可用.反向代理 ...
- 顶级“Redis学习笔记”,缓存雪崩+击穿+穿透+集群+分布式锁,NB了
如果你是一位后端工程师,面试时八成会被问到 Redis,特别是那些大型互联网公司,不仅要求面试者能简单使用 Redis,还要深入理解其底层实现原理,具备解决常见问题的能力.可以说,熟练使用 Redis ...
- Nginx中配置服务的反向代理(服务器集群技术)
需求:安装两个tomcat服务,通过nginx反向代理. 1:安装两个及以上tomcat 2:配置tomcat 修改端口:打开bin目录下的server.xml文件 修改下面三个端口, 不能重复防止冲 ...
- Nginx反向代理,负载均衡,Redis集群 Twemproxy,redis session共享,keepalived高可用-搭建千万级网站系统
Nginx反向代理,负载均衡,redis session共享,keepalived高可用-搭建千万级系统架构 1.安装Nginx 安装机器IP地址为: 192.168.91.129 (主) 192.1 ...
最新文章
- 《深入理解Spark:核心思想与源码分析》——1.2节Spark初体验
- 使用Apache Archiva搭建Maven Repository Server
- malloc,calloc和realloc函数
- linux的常用操作——程序调试gdb
- 暴风集团仅剩10余人;搜狗告百度输入法侵权案再驳回;Linux 5.6发布 | 极客头条...
- 数据库中union和union all的区别
- 部署jar包项目到服务器上
- cdr宏教程_如何自学coreldraw vba
- 根据城市的三字代码查询经纬度_中国国内机场三字码及经纬度
- mysql 数据库快速入门 结构化查询语言SQL
- vue中好用的视频插件推荐,video+canvas实现视频截图第一帧,ffmpeg实现视频截图第一帧
- 【已解决】数据库常见场景应用计算次日留存率
- 软件测试 - 功能测试Ⅱ
- 【Excle数据透视表】如何快速选定数据透视表的汇总行并添加绿色底纹
- 工厂模式与策略模式之区别
- HDU 百度之星(测试赛) - 1002 列变位法解密
- 落地零售智能体,百联集团全力打造面向未来的数字化商业体
- 浪潮服务器装系统2016,浪潮服务器系统安装及raid配置文档.pdf
- java独步寻花,江畔独步寻花赏析
- 236. 二叉树的最近公共祖先 java解决
热门文章
- python全局变量定义_python全局变量和局部变量的概念
- Oracle数据库中查看所有表和字段以及表注释.字段注释
- LINUX使用gpg签名校验文件
- 传统武术家为什么看起来厉害?谈实战的重要性
- 软件版本的GA、RC的具体含义
- error: ‘_beginthreadex‘ undeclared (first use in this function); did you mean ‘SDL_beginthread‘?
- 使用jdk提示Assistive Technology not found: org.GNOME.Accessibility.AtkWrapper
- LINUX SHELL自定义函数及参数范例
- 编译onnx-tensorrt产生libnvonnxparser.so
- 女员工有问题,责任在于头目不管事