首页 > 系统服务 > 详细

linux集群之Haproxy

时间:2019-11-06 22:15:54      阅读:96      评论:0      收藏:0      [点我收藏+]

      Haproxy集群是基于应用层,可以根据客户端的访问来识别不同的发服务,LVS集群是基于传输层,需要在LVS服务器上指定好相应的端口,才能访问

举例说明:如有有两组服务器,一组服务器提供视频,另外一组服服务器提供音频,在这样的情况下,要能够同时实现对这两组服务器的负载均衡,则LVS集群实现不了,要用Haproxy才能实现

 

Haproxy就是基于应用层的负载均衡集群

搭建环境:

 

技术分享图片

 

将html服务器和php服务器当成是提供两种不同服务的服务器集群

 ip地址分配:

html服务器1:192.168.1.11

yum -y install mariadb-server php php-mysql mariadb

cd /var/www/html

touch index.html test.html test.php

html服务器2:192.168.1.12

yum -y install mariadb-server php php-mysql mariadb

cd /var/www/html

touch index.html test.html test.php

php服务器1:192.168.1.14

yum -y install mariadb-server php php-mysql mariadb

cd /var/www/html

touch index.html test.html test.php

php服务器2:192.168.1.15

yum -y install mariadb-server php php-mysql mariadb

cd /var/www/html

touch index.html test.html test.php

Haproxy服务器:192.168.1.10

客户端:192.168.1.13

 

一、使用Haproxy服务部署LB集群

1、更具客户端访问的业务类型,在不同的服务器组之间做负载均衡

配置haproxy服务器

安装软件包

[root@Haproxy ~]# yum -y install haproxy

技术分享图片

 

/etc/haproxy/haproxy.cfg-----------------------配置文件 路径

[root@Haproxy ~]# cp /etc/haproxy/haproxy.cfg /opt/------------备份配置文件

[root@Haproxy ~]# vim /etc/haproxy/haproxy.cfg

技术分享图片

 

 技术分享图片

 

3 frontend  wenblb 192.168.1.10:80-------------------------Haproxy服务IP,当访问该IP地址的80端口时,进行下面的acl筛选
 64     acl htmlpath       path_end       -i .html--------------访问的是以.html结尾的这一类服务,命名为htmlpath
 65     acl phppath        path_end       -i .php--------------访问的是以.php结尾的这一类服务,命名为phppath   
 67     use_backend htmlgrp         if htmlpath-------------如果来访问的服务匹配的是htmlpath,则把该服务交给htmlgrp 处理
 68     use_backend phpgrp          if phppath--------------如果来访问的服务匹配的是phppath,则把该服务交给phpgrp处理
 69     default_backend             htmlgrp --------------------如果来访问的服务没有匹配到任何acl,则把该服务默认交给htmlgrp处理
 71 backend htmlgrp---------------------------------------------定义htmlgrp的后端(真实提供应用)的服务器IP地址组
 72     balance     roundrobin-----------------------------------表示用轮询的方式
 73     server  web11 192.168.1.11:80 check--------------提供应用的服务器IP地址 check表示检测应用服务器的存活状态
 74     server  web12 192.168.1.12:80 check  
 76 backend phpgrp
 77     balance     roundrobin
 78     server  php14 192.168.1.14:80 check
 79     server  php15 192.168.1.15:80 check

当访问192.168.1.10:80时,下做acl筛选,如果访问时是以.html结尾的这一类服务命名为htmlpath,

 

配置文件定义的名字可以随便写,没有特定要求

 

启动服务:

[root@Haproxy ~]# systemctl restart haproxy

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 

 

2、实现LB集群

把接收到访问网站请求平均发给4台网站服务器,不根据业务区分

技术分享图片

 

 

 listen webser-rewrite 192.168.1.10:80-------------------------------------------------------------webser-rewrite集群名,Haproxy服务器IP地址
        cookie SERVERID rewrite----------------------------------------------------------------------记录cookie ID
        balance roundrobin--------------------------------------------------------------------------------轮询的方式负载均衡
        server web11 192.168.1.11:80 cookie app11 check inter 2000 rise 2 fall 5-------web11服务名字,应用服务器IP地址,app11是cookie名字,2s检查一次,重试2次,重试5次后不再重试
        server web12 192.168.1.12:80 cookie app12 check inter 2000 rise 2 fall 5
        server web14 192.168.1.14:80 cookie app14 check inter 2000 rise 2 fall 5
        server web15 192.168.1.15:80 cookie app15 check inter 2000 rise 2 fall 5

名字可以任意起,没有限制

 

 

3、cookies插入

 一个客户端的多次链接请求分发给同一台服务器

 技术分享图片

 

 

 

linux集群之Haproxy

原文:https://www.cnblogs.com/scorpios/p/11795919.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!