设为首页 收藏本站
查看: 1562|回复: 0

[经验分享] haproxy反代+varnish缓存+后端LAMP平台集群实现

[复制链接]

尚未签到

发表于 2019-1-1 12:07:07 | 显示全部楼层 |阅读模式
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配置:
      
      
      
     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即可。
     

     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配置在这里就不多说了;
    运行结果:
     访问/myhaproxy
     
   
     访问静态资源
     
     访问动态资源
      
       访问phpMyAdmin
      





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-658248-1-1.html 上篇帖子:  HAProxy特性 下篇帖子: haproxy安装配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表