美文网首页
haproxy实现7层负载均衡

haproxy实现7层负载均衡

作者: 成熟稳重的阿辉哥 | 来源:发表于2019-04-01 10:41 被阅读0次

haproxy概念

是一款高性能的负载均衡软件。
因为其专注于负载均衡这一些事情,
因此与nginx比起来在负载均衡这件事情上做更好,更专业。

特点

•支持tcp / http 两种协议层的负载均衡,使得其负载均衡功能非常丰富。
•支持8种左右的负载均衡算法,尤其是在http模式时,有许多非常实在的负载均衡算法,适用各种需求。
•性能非常优秀,基于事件驱动的链接处理模式及单进程处理模式(和Nginx类似)让其性能卓越。
•拥有一个功能出色的监控页面,实时了解系统的当前状况。
•功能强大的ACL支持,给用户极大的方便。

处理模式

单进程处理模式
所有客户端连接全部都由同一个服务进程来处理,目标就是等待连接,来一个分配一个,主要消耗cpu。
多线程处理模式
多线程模式消耗内存,会限制并发而且多线程需要进程间通信,也会消耗相当多的cpu资源。

下面进入本次实验

环境

client:192.168.26.142
haproxy:192.168.26.152
web1:192.168.26.153
web2:192.168.26.154

解析ip
image.png
拷贝hosts文件到其他机器
image.png
haproxy机器安装haproxy,web机器安装httpd
haproxy: yum install -y haproxy
web1: yum install -y httpd
web2: yum install -y httpd
给web机器主页面,启动httpd
web1: echo web1 > /var/www/html/index.html
web1: systemctl start httpd && systemctl enable httpd
web2: echo web2 > /var/www/html/index.html
web2: systemctl start httpd && systemctl enable httpd
配置haproxy
# vim /etc/haproxy/haproxy.cfg 
global
    log 127.0.0.1 local3 info
    maxconn 4096
    uid nobody
    gid nobody
    daemon
    nbproc 1
defaults
    log        global
    mode       http
    maxconn 2048
    retries     3
    option  redispatch
    stats   uri  /haproxy
    stats auth          ahuige:123
    contimeout  5000
    clitimeout      50000
    srvtimeout      50000
    
    
frontend http-in
    bind 0.0.0.0:80
    mode http
    log global
    option httplog
    option httpclose
     acl html url_reg  -i  \.html$
     use_backend html-server if  html
     default_backend html-server

backend html-server
    mode http
    balance roundrobin
    option httpchk GET /index.html
    cookie SERVERID insert indirect nocache
    server html-A web1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
    server html-B web2:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5

        gloab:全局配置
log:日志配置
maxconn:最大连接限制(优先级低)
uid:用户
gid:组用户
deamon:守护进程运行
nbproc :haproxy进程数
defaults:针对(listen和backend块进行设置没如果块中没设置,则使用默认设置)默认配置
log:日志使用全局配置
mode:模式7层LB
maxconn:最大连接数(优先级中)
retries:健康检查。3次连接失败就认为服务不可用
option:服务不可用后的操作,重定向到其他服务器
stats:状态模块功能开启
stats auth:状态模块认证(用户名qianfeng密码123)
contimeout  : 定义haproxy将客户端请求转发至后端服务器,所等待的超时时长
clitimeout:haproxy作为客户,和后端服务器之间空闲连接的超时时间,到时候发送fin指令
srvtimeout  :haproxy作为服务器,和用户之间空闲连接的超时时间,到时候发送fin指令
frontend:前端配置块。面对用户侧
bind:面对用户监听地址和端口
mode:http模式的LB
log:日志使用全局配置

option httplog:默认日志格式非常简陋,仅包括源地址、目标地址和实例名称,而“option httplog参数将会使得日志格式变得丰富许多,其通常包括但不限于HTTP请求、连接计时器、会话状态、连接数、捕获的首部及cookie、“frontend”、“backend”及服务器名称,当然也包括源地址和端口号等。

option http close: 每次请求完毕后,关闭http通道

 acl html url_reg  -i  \.html$  :1. 访问控制列表名称html。规则要求访问以html结尾的url时
 use_backend html-server if  html   :2.如果满足acl html规则,则推送给后端服务器 html-server
 default_backend html-server  3:默认的后端服务器是 html-server

backend html-server:后端服务器名称为  html-server
mode http:模式为7层代理
balance roundrobin:算法为轮训
option httpchk GET /index.html     :允许用http协议检查server 的健康
cookie SERVERID insert indirect nocache:轮询的同时,根据插入的cookie SERVERID  的值来做会话保持,将相同的用户请求,转发给相同的真实服务器。
server html-A web1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5:cookie 3 服务器ID,避免rr算法将客户机请求转发给其他服务器 ,对后端服务器的健康状况检查间隔为2000毫秒,连续2次健康检查成功,则认为是有效的,连续5次健康检查失败,则认为服务器宕机
server html-B web2:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5
            关于haproxy时间格式配置说明
                一些包含了值的参数表示时间,如超时时长。这些值一般以毫秒为单位,但也可以使用其它的时间单位后缀。

 us: 微秒(microseconds),即1/1000000秒;
 ms: 毫秒(milliseconds),即1/1000秒;
 s: 秒(seconds);
 m: 分钟(minutes);
 h:小时(hours);
 d: 天(days);
    systemctl start haproxy.service
测试
image.png
测试haproxy状态

浏览器访问192.168.26.152/haproxy


image.png
输入用户名密码

ahuige
123


image.png

相关文章

  • HAProxy

    HAProxy 负载均衡实现代理 HAProxy vs Nginx 技术项目 Nginx vs HAProxy v...

  • 使用HAProxy实现4层和7层代理

    HAProxy是一款负载均衡软件,LVS只实现了4层负载调度,而HAProxy实现了4层和7层的负载调度,它具有以...

  • 使用Haproxy

    使用Haproxy Haproxy是目前比较流行的一种集群调度工具 四层负载均衡;七层负载均衡;Haproxy 与...

  • lvs

    nginx,haproxy,lvs 的比较 共同点:都能实现负载均衡 不同点 负载均衡vs反向代理 lvs介绍 L...

  • CentOS 安装 HAProxy 实现 TCP 负载均衡

    HAProxy可以实现 TCP 负载均衡 关闭防火墙systemctl stop firewalldsystemc...

  • haproxy详解(下)

    通过HAProxy的ACL规则实现智能负载均衡 由于HAProxy可以工作在七层模型下, 因此,要实现HAProx...

  • Haproxy 基础

    3、Haproxy 基础 软件:haproxy---主要是做负载均衡的7层,也可以做4层负载均衡apache也可以...

  • 第十八周作业

    1、运用haproxy实现nginx服务负载均衡 测试环境: Nginx1: 172.16.100.151 por...

  • 第十九周

    1、运用haproxy实现nginx服务负载均衡 测试环境: Nginx1: 172.16.100.151 por...

  • Haproxy的ACL与负载均衡、tcp与http模式及相关健康

    一、前言 本次实验目:1、通过haproxy实现负载均衡,并使用acl进行智能调度。2、配置演示haproxy的t...

网友评论

      本文标题:haproxy实现7层负载均衡

      本文链接:https://www.haomeiwen.com/subject/bmembqtx.html