环境准备 centos7虚拟机三台  一台为haproxy  另外两台分别为 web1、web2

目录

一、haproxy简述:HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy具备媲美商用负载均衡器的性能和稳定性。

二、haproxy作用

(1)    负载均衡:L4和L7两种模式,支持RR/静态RR/LC/IP Hash/URI Hash/URL_PARAM Hash/HTTP_HEADER Hash等丰富的负载均衡算法

 (2)    健康检查:支持TCP和HTTP两种健康检查模式

  (3)    会话保持:对于未实现会话共享的应用集群,可通过Insert Cookie/Rewrite Cookie/Prefix Cookie,以及上述的多种Hash方式实现会话保持

   (4)    SSL:HAProxy可以解析HTTPS协议,并能够将请求解密为HTTP后向后端传输

     (5)    HTTP请求重写与重定向

       (6)    监控与统计:HAProxy提供了基于Web的统计信息页面,展现健康状态和流量数据。基于此功能,使用者可以开发监控程序来监控HAProxy的状态

三、haproxy安装

四、haproxy七层负载配置

五、 harpoxy四层负载配置


一、haproxy简述:HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy具备媲美商用负载均衡器的性能和稳定性。


二、haproxy作用

(1)    负载均衡:L4和L7两种模式,支持RR/静态RR/LC/IP Hash/URI Hash/URL_PARAM Hash/HTTP_HEADER Hash等丰富的负载均衡算法

健康检查:支持TCP和HTTP两种健康检查模式

  (3)    会话保持:对于未实现会话共享的应用集群,可通过Insert Cookie/Rewrite Cookie/Prefix Cookie,以及上述的多种Hash方式实现会话保持

   (4)    SSL:HAProxy可以解析HTTPS协议,并能够将请求解密为HTTP后向后端传输

     (5)    HTTP请求重写与重定向

       (6)    监控与统计:HAProxy提供了基于Web的统计信息页面,展现健康状态和流量数据。基于此功能,使用者可以开发监控程序来监控HAProxy的状态


三、haproxy安装

systemctl stop firewalld

setenforce 0

内核配置

net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 1024 65023
net.ipv4.tcp_max_syn_backlog = 10240
net.ipv4.tcp_max_tw_buckets = 400000
net.ipv4.tcp_max_orphans = 60000
net.ipv4.tcp_synack_retries = 3
net.core.somaxconn = 10000

下载haproxy

wget https://www.haproxy.org/download/1.7/src/haproxy-1.7.2.tar.gz

安装依赖

yum -y install gcc-c++

下载完成编译安装为下

tar -xf  haproxy-1.7.2.tar.gz

make PREFIX=/usr/local/haproxy TARGET=linux2628

make install PREFIX=/usr/local/haproxy


四、haproxy七层负载配置

从haproxy的源码包中的examples下的init.haproxy中获得配置文件的路径“/etc/haproxy/haproxy.cfg”

创建配置文件

touch /etc/haporxy/haproxy.cfg

cp /root/haproxy-1.7.2/examples/haproxy.init /etc/init.d/haproxy

vim /etc/haproxy/haproxy.cfg

配置负载均衡写入以下

global #全局属性
    daemon  #以daemon方式在后台运行
    maxconn 256  #最大同时256连接
    pidfile /home/ha/haproxy/conf/haproxy.pid  #指定保存HAProxy进程号的文件
 
 
defaults #默认参数
    mode http  #http模式
    timeout connect 5000ms  #连接server端超时5s
    timeout client 50000ms  #客户端响应超时50s
    timeout server 50000ms  #server端响应超时50s
 
 
frontend http-in #前端服务http-in
    bind *:8080  #监听8080端口
    default_backend servers  #请求转发至名为"servers"的后端服务
 
 
backend servers #后端服务servers
    server server1 127.0.0.1:8000 maxconn 32  #backend servers中只有一个后端服务,名字叫server1,起在本机的8000端口,HAProxy同时最多向这个服务发起32个连接

注意; 
defaults #默认参数(区域)
    mode http  #http模式是七层负载的模式、tcp是四层负载的模式

cp /root/haproxy-1.7.2/examples/haproxy.init /etc/init.d/haproxy

添加服务

vim  /etc/init.d/haproxy

修改: 35行 内容为 BIN=/usr/local/haproxy/sbin/$BASENAME

             #26行  [ $ {NETWORKING} ="on" ] &&  exit 0

        

移除haproxy负载均衡服务器 haproxy负载配置_移除haproxy负载均衡服务器

          chkconfig --add /etc/init.d/haproxy

            添加自起

           chkconfig haproxy --level 35 on

             chkconfig --list

    启动 haproxy

     service haproxy  start

      wbe安装 安装yum -y install httpd

    echo    www  >   /var/www/html/index.html

移除haproxy负载均衡服务器 haproxy负载配置_移除haproxy负载均衡服务器_02

配置监控页面vim /etc/harpoxy/haporxy.cfg

listen stats    #定义监控页面    
bind *:1080                   #绑定端口1080    
stats refresh 30s             #每30秒更新监控数据    
stats uri /stats              #访问监控页面的uri    
stats realm HAProxy\ Stats    #监控页面的认证提示    
stats auth admin:admin        #监控页面的用户名和密码

 

移除haproxy负载均衡服务器 haproxy负载配置_移除haproxy负载均衡服务器_03


 

五、 harpoxy四层负载配置

vim/etc/harpoxy/harpoxy.cfg

global
    daemon  
    maxconn 256  
    pidfile /var/run/haproxy/haproxy.pid  
 
 
defaults
    mode tcp
    timeout connect 5000ms  
    timeout client 50000ms  
    timeout server 50000ms
 
 
frontend http-in
    bind *:8080  
    default_backend servers  
 
 
backend servers
    balance  roundrobin  #轮询
  
    server server1 192.168.115.154:8080 maxconn 32  
server server2 192.168.115.151:8090

验证方法跟七成负载一样