haproxy实现负载均衡集群

1.HAProxy概述

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。根据官方数据,其最高极限支持10G的并发。
HAProxy特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
其支持从4层至7层的网络交换,即覆盖所有的TCP协议。就是说,Haproxy 甚至还支持 Mysql的均衡负载。
相同点:在功能上,proxy通过反向代理方式实现 WEB均衡负载。和 Nginx,ApacheProxy,lighttpd,Cheroke 等一样。
不同点:Haproxy 并不是 web 服务器。以上提到所有带反向代理均衡负载的产品,都清一色是 WEB 服务器。简单说,就是他们能处理解析页面的。而Haproxy 仅仅是一款的用于均衡负载的应用代理。其自身并不能提供web服务。但其配置简单, 拥有非常不错的服务器健康检查功能还有专门的系统状态监控页面,当其代理的后端服务器出现故障, HAProxy会自动将该服务器摘除,故障恢复后再自动将该服务器加入。

2.实战

1.安装依赖包

[root@longnian ~]# yum -y install make gcc pcre-devel bzip2-devel openssl-devel systemd-devel

2.安装haproxy

[root@longnian src]# tar xf haproxy-2.1.3.tar.gz
[root@longnian haproxy-2.1.3]# useradd -r -M -s /sbin/nologin haproxy
[root@longnian haproxy-2.1.3]# make -j $(nproc) TARGET=linux-glibc USE_OPENSSL=1 USE_ZLIB=1 USE_PCRE=1 USE_SYSTEMD=1
...........
[root@longnian haproxy-2.1.3]# make install

[root@longnian ~]# which haproxy
/usr/local/sbin/haproxy

[root@longnian ~]# echo 'net.ipv4.ip_nonlocal_bind = 1' >>  /etc/sysctl.conf
[root@longnian ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
[root@longnian ~]# sysctl  -p

3. 没有生成配置文件,自己手动写一个HAproxy配置文件

[root@longnian ~]# mkdir /etc/haproxy
[root@longnian haproxy-2.1.3]# cd /etc/haproxy/
cat > /etc/haproxy/haproxy.cfg <

关于负载均衡算法
  #source    根据请求源IP
  #static-rr   根据权重
  #leastconn 最少连接者先处理
  #uri     根据请求的uri
  #url_param 根据请求的url参数
  #rdp-cookie 据据cookie(name)来锁定并哈希每一次请求
  #hdr(name) 根据HTTP请求头来锁定每一次HTTP请求
  #roundrobin 轮询方式

4.haproxy.service文件编写

[root@longnian ~]#  cat > /usr/lib/systemd/system/haproxy.service <

5.启动haproxy和日志服务

[root@longnian ~]# systemctl daemon-reload
[root@longnian ~]# systemctl restart haproxy

[root@longnian ~]# ss -anlt
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      128     127.0.0.1:9000                        *:*                  
LISTEN      0      64              *:43755                       *:*                  
LISTEN      0      128             *:59759                       *:*                  
LISTEN      0      128             *:111                         *:*                  
LISTEN      0      128             *:80                          *:*                  
LISTEN      0      128             *:20048                       *:*                  
LISTEN      0      128             *:22                          *:*                  
LISTEN      0      100     127.0.0.1:25                          *:*                  
LISTEN      0      128             *:3260                        *:*                  
LISTEN      0      128             *:8189                        *:*                  
LISTEN      0      64              *:2049                        *:*                  
LISTEN      0      80             :::3306                       :::*                  
LISTEN      0      64             :::47439                      :::*                  
LISTEN      0      128            :::111                        :::*                  
LISTEN      0      128            :::20048                      :::*                  
LISTEN      0      128            :::54996                      :::*                  
LISTEN      0      128            :::22                         :::*                  
LISTEN      0      100           ::1:25                         :::*                  
LISTEN      0      128            :::3260                       :::*                  
LISTEN      0      64             :::2049                       :::*

6.在另外两台服务器上配置http

6.1安装httpd

[root@node01 ~]# yum -y install httpd
[root@node02 ~]# yum -y install httpd

6.2修改index.html

[root@node01 ~]# echo "node01" > /var/www/html/index.html
[root@node02 ~]# echo "node02" > /var/www/html/index.html

6.3访问web

haproxy实现负载均衡集群_第1张图片
haproxy实现负载均衡集群_第2张图片

7.用haproxy访问查看效果

haproxy实现负载均衡集群_第3张图片
haproxy实现负载均衡集群_第4张图片

8.查看监控界面

haproxy实现负载均衡集群_第5张图片

你可能感兴趣的:(linux,负载均衡)