HAproxy七层负载均衡

本文详细介绍了HAProxy七层负载均衡的安装配置过程,包括环境搭建、配置文件解析及功能测试。通过实例演示了如何实现基于Cookie的会话保持,确保客户端访问的连续性和稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                haproxy七层 负载均衡

实验环境:192.168.1.27 haproxy

192.168.1.3 WEB1

192.168.1.4 WEB2

1. haproxy下载安装

#wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.19.tar.gz

#tar zxvf  haproxy-1.4.19.tar.gz

# cd haproxy-1.4.19

# make TARGET=linux26

# make install

2. 配置

Vi /etc/haproxy.cfg

global

log 127.0.0.1 local0 info #日志[err warning info debug]

maxconn 4096 #单个进程的最大连接数

pidfile /var/run/haproxy.pid

user haproxy

group haproxy

daemon #守护进程运行

#nbproc 2 #作为守护进程运行时,创建多少个进程

defaults

log global

mode http

option dontlognull #不记录空连接

option log-health-checks #记录健康检测日志

retries 3 #连接失败后的重连次数

option redispatch #在连接失败或断开情况下,允许当前会话被重新分发

maxconn 2000 #最大连接数

timeout connect 5000ms

timeout client 30000ms

timeout server 30000ms

listen stats 192.168.1.27:8888 #haproxy统计页面

stats refresh 30s

stats hide-version

mode http

transparent

stats uri / haproxy

stats realm Haproxy \ statistic

listen web 0.0.0.0:80

mode http #http七层负载模式

balance roundrobin #服务器分配算法

option tcpka

option httpchk GET /123.php #用于检查服务是否正常的页面

cookie SERVERID insert indirect #允许插入serverid到cookie中serverid后面可自定义

server web1 192.168.1.3:80 weight 1 check inter 5s rise 2 fall 2 cookie A

server web2 192.168.1.4:80 weight 1 check inter 5s rise 2 fall 2 cookie B

#后台服务器

#weight 服务器权重

#check port 检测端口

#inter 设置连续的两次健康检测间的时间

#rise 指定多少次连接成功的健康检测后,可认定该服务可用

#fall 指定多少次失败的健康检测后,可认定该服务故障

3. haproxy七层负载功能测试

以下是网上找的一个session检测页面

<?php

session_start();

$_SESSION['time'] =date("Y:m:d:H:s",time());

echo "time"."&lt;font color=red>".$_SESSION['time']."</font>"."<br>";

echo "ip adress"."<font color=red>".$_SERVER['SERVER_ADDR']."</font>"."<br>";

echo "local adress"."<font color=red>".$_SERVER['SERVER_NAME']."</font>"."<br>";

echo "SESSIONNAME"."<font color=red>".session_name()."</font>"."<br>";

echo "SESSIONID"."<font color=red>".session_id()."</font>"."<br>";

?&gt;

在192.168.1.3和192.168.1.4的web目录中各上传一个该PHP页面后访问:

clip_image001

可以看到三次访问结果,访问的真实服务器IP都是192.168.1.4 ,SESSIONID都是dm22o79o2r28guir5loap95ba1。 可以说明haproxy已成功通过cookie保存了SessionID,使得同一客户端每次访问都是同一个Session。

haproxy通过页面检测服务器和统计 

1. 状态查看

在/etc/haproxy.cfg配置文件中的option httpchk GET /phpmyadmin/index.php这一行即为通过某一页面来检测服务器是否正常。还可以打开http://192.168.1.27:8888/统计面可以看到当前连接数、最大连接数、发送/接收字节、服务器状态等信息。

clip_image003

2. 测试服务器故障检测功能

更改检测页面名称,模拟页面无法访问

clip_image005

统计页面WEB1的Status显示为DOWN,并呈红色预警

clip_image007

更改检测页面回原名

clip_image009

统计页面显示WEB1的Status显示为UP

clip_image011

           

给我老师的人工智能教程打call!http://blog.youkuaiyun.com/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值