标签:tpc time() round 三次 out lis led nload port
实验环境: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 #单个进程的最大连接数
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"."<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>";
?>
在192.168.1.3和192.168.1.4的web目录中各上传一个该PHP页面后访问:
可以看到三次访问结果,访问的真实服务器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/统计面可以看到当前连接数、最大连接数、发送/接收字节、服务器状态等信息。
2. 测试服务器故障检测功能
更改检测页面名称,模拟页面无法访问
统计页面WEB1的Status显示为DOWN,并呈红色预警
更改检测页面回原名
统计页面显示WEB1的Status显示为UP
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://www.cnblogs.com/captainbed
标签:tpc time() round 三次 out lis led nload port
原文地址:https://www.cnblogs.com/skiwnxhw/p/10164468.html