linux集群之Haproxy

感情迁移 提交于 2019-12-03 21:02:56

      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插入

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

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!