haproxy反代+varnish缓存+后端LAMP平台集群实现

简介:

  

haproxy服务器:

     第一台haproxy本机IP:

        eno16777736:192.168.72.2

        eno33554976:172.16.25.1

     第二台haproxy本机IP:

        eno16777736:192.168.72.3

        eno33554976:172.16.25.2

      keepalived高可用虚拟IP:

        eno16777736:192.168.72.20

        eno33554976:172.16.25.100

      keepalived配置:

      QQ截图20171211121121.jpg

      QQ截图20171211121151.jpg

      QQ截图20171211123101.jpg

     keepalived的配置项在这里就不再讲述了,前面都有讲过。主要就是对nginx的状态进行一个判断

     若nginx down掉了,则将权重值-10,MASTER降为BACKUP(抢占模式)。当MASTER中的nginx

     启动后,又会自动成为MASTER,虚拟IP就由MASTER掌控。


     haproxy反代配置:

     172.16.25.77为后端varnish的IP

     设置fontend接受所有80端口信息;

     直接转发到关于后端的varnish的backend var1,由varnish进行动静分离;

     设置haproxy stats,stats enable开启stats,并设置访问的uri,设置用户名,密码,避免其他用户访问;

     backend var1算法设置为一致性hash,基于uri的。并转发到varnish主机,若varnish有多台,直接增加server即可。

     QQ截图20171215175724.jpg

     

     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为管理端口

         QQ截图20171211124100.jpg

        

         /etc/varnish/default.vcl配置:

         设置反代到后端的两个主机,可以进行健康状态监测,如

         probe = {

               url = /health.html

               timeout = 3s

               interval = 2s

               window = 5

               threahold = 3 (5次检测有三次成功则表示后端RS正常)

        }

         QQ截图20171211124742.jpg

         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();即可。

         注意:在使用组调度方式时,需要在配置文件顶部添加

         QQ截图20171211130220.jpg

         QQ截图20171211125147.jpg

     启动varnish服务

     systemctl start varnish.service

     使用varnishadm加载default.vcl文件

     QQ截图20171211130629.jpg

   

  后端RS的LAMP配置在这里就不多说了;

    运行结果:

     访问/myhaproxy

     QQ截图20171215180225.jpg

    QQ截图20171215180246.jpg

     访问静态资源

     QQ截图20171211130750.jpg

     访问动态资源

      QQ截图20171211130822.jpg

       访问phpMyAdmin

       QQ截图20171211130929.jpg

        



本文转自 wujunqi1996 51CTO博客,原文链接:http://blog.51cto.com/12480612/2051134
相关文章
|
2月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
134 3
|
3月前
|
存储 缓存 监控
后端开发中的缓存机制:深度解析与最佳实践####
本文深入探讨了后端开发中不可或缺的一环——缓存机制,旨在为读者提供一份详尽的指南,涵盖缓存的基本原理、常见类型(如内存缓存、磁盘缓存、分布式缓存等)、主流技术选型(Redis、Memcached、Ehcache等),以及在实际项目中如何根据业务需求设计并实施高效的缓存策略。不同于常规摘要的概述性质,本摘要直接点明文章将围绕“深度解析”与“最佳实践”两大核心展开,既适合初学者构建基础认知框架,也为有经验的开发者提供优化建议与实战技巧。 ####
|
4月前
|
存储 缓存 分布式计算
大数据-89 Spark 集群 RDD 编程-高阶 编写代码、RDD依赖关系、RDD持久化/缓存
大数据-89 Spark 集群 RDD 编程-高阶 编写代码、RDD依赖关系、RDD持久化/缓存
62 4
|
4月前
|
存储 缓存 NoSQL
深入理解后端缓存机制的重要性与实践
本文将探讨在后端开发中缓存机制的应用及其重要性。缓存,作为提高系统性能和用户体验的关键技术,对于后端开发来说至关重要。通过减少数据库访问次数和缩短响应时间,缓存可以显著提升应用程序的性能。本文将从缓存的基本概念入手,介绍常见的缓存策略和实现方式,并通过实例展示如何在后端开发中有效应用缓存技术。最后,我们将讨论缓存带来的一些挑战及其解决方案,帮助您在实际项目中更好地利用缓存机制。
|
5月前
|
机器学习/深度学习 缓存 NoSQL
深度学习在图像识别中的应用与挑战后端开发中的数据缓存策略
本文深入探讨了深度学习技术在图像识别领域的应用,包括卷积神经网络(CNN)的原理、常见模型如ResNet和VGG的介绍,以及这些模型在实际应用中的表现。同时,文章也讨论了数据增强、模型集成等改进性能的方法,并指出了当前面临的计算资源需求高、数据隐私等挑战。通过综合分析,本文旨在为深度学习在图像识别中的进一步研究和应用提供参考。 本文探讨了后端开发中数据缓存的重要性和实现方法,通过具体案例解析Redis在实际应用中的使用。首先介绍了缓存的基本概念及其在后端系统性能优化中的作用;接着详细讲解了Redis的常见数据类型和应用场景;最后通过一个实际项目展示了如何在Django框架中集成Redis,
|
6月前
|
消息中间件 监控 Kafka
联通实时计算平台问题之Flink状态后端数据量较大时,问题排查要如何进行
联通实时计算平台问题之Flink状态后端数据量较大时,问题排查要如何进行
|
6月前
|
缓存 网络协议 API
【API管理 APIM】APIM中对后端API服务的DNS域名缓存问题
【API管理 APIM】APIM中对后端API服务的DNS域名缓存问题
|
6月前
|
缓存 开发工具
使用varnish缓存多个网站(三)
【8月更文挑战第9天】使用varnish缓存多个网站
81 5
|
6月前
|
存储 缓存 Linux
使用Varnish为网站加速(二)缓存一个网站
【8月更文挑战第9天】使用Varnish为网站加速安装使用缓存一个网站
40 1