HAproxy-7层负载均衡集群根据不同服务请求分配服务器

搭建HAproxy----7层负载均衡集群的补充

https://blog.csdn.net/qq_73990369/article/details/142500451?spm=1001.2014.3001.5501

一、再准备两台虚拟机进行测试

192.168.229.15/24 ----php1

192.168.229.16/24 ----php2

1、PHP1 & php2(192.168.229.15/24 ,192.168.229.16/24 )

复制代码
yum install httpd php -y

2、分别创建测试页面 index.php ,开启服务

复制代码
vim /var/www/html/index.php

1.php1

php1111111

2.php2

php222222

3、启动httpd

复制代码
systemctl start httpd

二、修改配置文件(192.168.229.12)

复制代码
vim /etc/haproxy/haproxy.cfg

global
		log 127.0.0.1 local3 info	   #日志服务器
		maxconn 4096				   #最大连接数
		uid nobody					   #用户身份
		gid nobody					   #组身份
		daemon						   #守护进程方式后台运行
		nbproc 1						   #工作进程数量
		
####### ###########默认设置 ###################
#####这些参数是配置 frontend,backend,listen 组的 ###########		
	defaults                    #这些参数可以被利用配置到frontend,backend,listen组件   
		log		   global
		mode	   http	    #工作模式 http ,tcp 是 4 层,http是 7 层	
		maxconn 2048		#最大连接数
		retries 	3			    #3 次连接失败就认为服务器不可用
		option	redispatch	#如果 cookie 写入了 serverId 而客户端不会刷新 cookie,当serverId 对应的服务器挂掉后,强制定向到其他健康的服务器
		stats	uri  /haproxy	#使用浏览器访问 http://192.168.229.12/haproxy,可以看到服务器状态
		stats auth           wing:123     #用户认证,客户端使用elinks浏览器的时候不生效
		contimeout	5000          #连接超时时间,单位毫秒ms
		clitimeout	    50000        #客户端超时
		srvtimeout	    50000        #服务器超时
		
		
	frontend http-in
		bind 0.0.0.0:80                           #监听端口
		mode http
		log global
		option httplog			                 #日志类别 http 日志格式
		option httpclose		                 #打开支持主动关闭功能,每次请求完毕后主动关闭http通道	,ha-proxy不支持keep-alive,只能模拟这种模式的实现	
	    acl php url_reg  -i  \.php$			 #acl <ACL名字>  <类型>  <大小写>  <规则>
	    acl html url_reg  -i  \.html$		  	 #use_backend  <服务器组>  if  <ACL名字>
	    use_backend php-server if  php
	    use_backend html-server if  html
	    default_backend html-server		 #默认使用的服务器组
	

	backend php-server
		mode http
		balance roundrobin			            #负载均衡的方式
		option httpchk GET /index.php		#健康检查
		cookie SERVERID insert indirect nocache	#客户端的 cookie 信息,允许插入serverid到cookie中,此处cookie号不同
		server php-A 192.168.229.15:80 weight 1 cookie 1 check inter 2000 rise 2 fall 5
		server php-B 192.168.229.16:80 weight 1 cookie 2 check inter 2000 rise 2 fall 5
		#cookie 1 标识 serverid 为 1
		#check inter 2000          检测心跳频率
		#rise 2     2 次正确认为服务器可用
		#fall 5      5 次失败认为服务器不可用
	
	backend html-server
		mode http
		balance roundrobin
		option httpchk GET /index.html
		cookie SERVERID insert indirect nocache
		server html-A 192.168.229.13:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
		server html-B 192.168.229.14:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5

重新启动HAproxy

复制代码
systemctl restart haproxy.service

配置域名解析

复制代码
vim /etc/hosts

192.168.229.15 php1
192.168.229.16 php2

在客户端(Client)访问 HAproxy 测试

复制代码
elinks --dump http://haproxy/index.html
elinks --dump http://192.168.229.12/index.php
相关推荐
happymade4 分钟前
7000 台网络设备批量纳管 & 自动拓扑生成实战——MSRM3 完整操作流程与关键要点复盘
运维·服务器·网络·zabbix·grafana·msrm3
做萤石二次开发的哈哈18 分钟前
萤石蓝海 AIoT 一站式工作台:海康LCD会议平板接入,多端大屏运维应用一站生成
运维·物联网·电脑·萤石开放平台·会议室管理·蓝海aiot一站式工作台·otap物模型
Shadow(⊙o⊙)29 分钟前
Linux网络——文件与网络的连接桥梁struct sock {
linux·运维·网络
其实防守也摸鱼38 分钟前
教育信息技术应用创新---基础软件信息赛(题库)
大数据·运维·人工智能·web安全·自动化
新时代牛马42 分钟前
Linux 性能调优与追踪完整篇:ftrace、perf、eBPF从采样到落地验证
linux·运维·服务器
虎王物联1 小时前
Docker BuildKit多阶段构建:IoT固件交叉编译流水线实战
运维·物联网·ci/cd·docker·容器·物联网嵌入式
Mortalbreeze1 小时前
深入理解 Linux IO 模型(二):多路复用——select
linux·运维·服务器·网络·tcp/ip
养生技术人1 小时前
Oracle OCP认证考试题目详解082系列第17题
运维·数据库·sql·oracle·ocp
Mrs_DongDong1 小时前
华为云 Windows 服务器远程桌面自定义端口排障指南
服务器·windows·华为云
SamChan901 小时前
PDF翻译服务端到端基准测试:4款主流方案的吞吐量、延迟、内存占用对比
服务器·网络·python·ai·pdf·wpf