haproxy负载均衡

1、配置环境

|----------------------------|--------------|-----------------------|
|   | 作用 | 环境 |
| windows | 测试 |   |
| 192.168.33.158 172.25.0.11 | haproxy负载均衡 | haproxy:2.8.1,centos7 |
| 172.25.0.31 | web服务器1--rs1 | Apache:2.4,redhat9 |
| 172.25.0.32 | web服务器2--rs2 | Apache:2.4 , redhat9 |


2、haproxy配置

bash 复制代码
global
log 127.0.0.1 local2
maxconn 4096
daemon #以后台形式运行 haproxy

defaults
log global
log 127.0.0.1 local2 #日志文件的输出定向,产生的日志级别为 local3,系统中 local1~7 由用户自己定义
mode http #工作模式,所处理的类别,默认采用 http 模式,可配置成 tcp 作 4 层消息转发
option httplog #日志类别,记载 http 日志
option httpclose #每次请求完毕后主动关闭 http 通道,haproxy 不支持 keep-alive,只能模拟这种模式的实现
option dontlognull #不记录空连接,产生的日志
option forwardfor #如果后端服务器需要获得客户端真实 ip 需要配置的参数,可以从 Http Header 中获得客户端 ip
option redispatch #当 serverid 对应的服务器挂掉后,强制定向到其它健康服务器
retries 2 #2 次连接失败就认为服务器不可用,主要通过后面的 check 检查
maxconn 2000 #最大连接数
balance roundrobin #负载均衡算法
stats uri /haproxy-stats #haproxy 监控页面的访问地址 # 可通过http://localhost:80/haproxy-stats 访问
timeout connect 5000 #连接超时时间,单位是 ms 毫秒
timeout client 50000 #客户端连接超时时间
timeout server 50000 #服务器端连接超时时间
mode http
option httpchk GET /index.html #健康检测,下载某一个页面来进行测试,因此这个页面应该是个小页面,而不要用首页面,这里是每隔一秒检查一次页面

frontend http #前端配置,http 名称可自定义
bind 0.0.0.0:80 #发起 http 请求 80 端口,会被转发到设置的 ip 及端口
default_backend http_back #转发到后端 写上后端名称

backend http_back #后端配置,名称上下关联
server s1 172.25.0.31:80 weight 3 check #后端的主机 IP 权重
server s2 172.25.0.32:80 weight 3 check #后端的主机 IP 权重

#server node1 192.168.176.31:80 check inter 2000 rise 3 fall 3 weight 3

3、测试

相关推荐
dragon_perfect1 小时前
adoc(asciidoc)转为markdown的方法,把.adoc文件转换为markdown格式
linux·运维·deepseek本地知识库
苹果醋31 小时前
SpringCloud Alibaba场景实践(Nacos篇)
java·运维·spring boot·mysql·nginx
早起鸟儿9 小时前
docker-Dockerfile 配置
java·linux·运维·docker
虚妄狼9 小时前
【Docker Desktop】Windows11安装 Docker Desktop
运维·docker·容器
Hello.Reader9 小时前
NGINX 四层上游模块`ngx_stream_upstream_module` 实战指南
运维·nginx
IT成长日记10 小时前
【Docker基础】Docker核心概念:命名空间(Namespace)与资源隔离联系
运维·docker·namespace·资源隔离·命令空间
Mikhail_G10 小时前
Python应用八股文
大数据·运维·开发语言·python·数据分析
再ZzZ11 小时前
Docker安装PaddleOCR并提供接口服务(CPU)
运维·docker·容器
love530love12 小时前
是否需要预先安装 CUDA Toolkit?——按使用场景分级推荐及进阶说明
linux·运维·前端·人工智能·windows·后端·nlp