LVS负载均衡群集

目录

1:案例前置知识点

1.1:HTTP请求

1.2:负载均衡常用调用算法

1.3:常见的web群集调度器

2:案例环境

2.1:本案例环境

2.2:案例需求

二:案例实施

1:安装web服务器

(1)搭建web1

(2)搭建web2

2:编译安装Haproxy

3:Haproxy服务器配置

(1)建立Haproxy的配置文件

(2)修改haproxy.conf配置文件

4:测试web群集

(1)测试高性能

(2)测试高可用

5:Haproxy的日志

6:Haproxy的参数优化


1:案例前置知识点

1.1:HTTP请求

HTTP(HyperText Transfer Protocol)是Web应用的基础协议,采用请求-响应模型。

常见HTTP请求方法:GET(获取资源)、POST(提交数据)、PUT(更新资源)、DELETE(删除资源)等。

HTTP是无状态协议,依赖Cookie/Session保持会话。

长连接(Keep-Alive):复用TCP连接,减少建立/关闭连接的开销,适用于高并发场景。

消息

描述

200 OK

请求成功(其后是对GET和POST请求的应答文档)

301 Moved Permanently

请求的永久页面跳转

302

临时重定向

304 Not Modified 

未修改,比如本地缓存的资源文件和服务器上比较时,发现并没有修改,服务器返回一个304状态码,告诉浏览器,你不用请求该资源,直接使用本地的资源即可。

403 Forbidden

禁止访问该页面,服务器拒绝请求

404 Not Found

服务器无法找到被请求的页面

500 Internal Server Error

内部服务器错误

502 Bad Gateway

无效网关

503 Service Unavailable

当前服务不可用

504 Gateway Timeout

网关请求超时

1.2:负载均衡常用调用算法

调度算法 说明 适用场景
轮询(Round Robin) 按顺序分配请求,均匀分发流量。 各服务器性能相近时使用
加权轮询(Weighted RR) 根据服务器权重分配请求,权重越高,分配的请求越多。 服务器性能不均衡时优化负载
最小连接(Least Connections) 优先将请求分配给当前连接数最少的服务器。 长连接或会话时间差异大的场景
IP哈希(IP Hash) 根据客户端IP计算哈希值,固定分配到某台服务器。 需要会话保持(如登录状态)
URL哈希(URL Hash) 根据请求的URL分配服务器,相同URL始终访问同一台服务器。 缓存优化(如CDN)

1.3:常见的web群集调度器

调度器 特点 适用场景
Nginx 高性能反向代理,支持HTTP/HTTPS负载均衡,基于事件驱动,适合高并发。 Web服务器、API网关、静态资源
HAProxy 专业级负载均衡,支持TCP/HTTP,丰富的调度算法,适合复杂业务场景。 微服务、数据库负载均衡
LVS 基于Linux内核的四层(L4)负载均衡,性能极高,但不支持应用层(L7)解析。 高吞吐量场景(如视频流)

2:案例环境

2.1:本案例环境

主机 操作系统 IP 地址 应用
nginx1 openEuler 24.03 192.168.10.101 nginx
nginx2 openEuler 24.03 192.168.10.102 nginx
haproxy openEuler 24.03 192.168.10.103 haproxy

2.2:案例需求

① 测试安装 nginx、haproxy;
② Haproxy、nginx 配置。

二:案例实施

1:安装web服务器

(1)搭建web1

#安装web网站
dnf -y install httpd		#安装网站
#测试网页
vim /var/www/html/index.html
	test202.com
#开启服务
systemctl start httpd		
systemctl enable httpd

(2)搭建web2

#安装web网站
dnf -y install httpd		#安装网站
#测试网页
vim /var/www/html/index.html
	test203.com
#开启服务
systemctl start httpd		
systemctl enable httpd

2:编译安装Haproxy

测试网页

curl 192.168.10.202
curl 192.168.10.203

安装haproxy软件包

dnf -y install haproxy

3:Haproxy服务器配置

(1)建立Haproxy的配置文件

vim /etc/haproxy/haproxy.cfg

Haproxy 配置文件通常分为三个部分,即 global、defaults 和 listen。global 为全局配置,defaults 为默认配置,listen 为应用组件配置。

global 配置项通常有下面配置参数,以示例参数说明如下。

global
    log 127.0.0.1 local2 //配置日志记录,local2 为日志设备,默认存放到系统日志
    maxconn 4000 //最大连接数
    user haproxy //用户
    group haproxy //用户组

defaults 配置项配置默认参数,一般会被应用组件继承,如果在应用组件中没有特别声明,将按照默认配置参数设置。

defaults
    log global //定义日志为 global 配置中的日志定义
    mode http //模式为 http
    option httplog //采用 http 日志格式记录日志
    retries 3 //检查节点服务器失败次数,连续达到三次失败,则认为节点不可用
    maxconn 3000 //最大连接数
    timeout connect 5s //连接超时时间
    timeout client 1m //客户端超时时间
    timeout server 1m //服务器超时时间

listen 配置项一般配置应用模块参数。

listen webcluster //定义一个 appli4-backup 的应用
    bind 0.0.0.0:80 //监听所有网卡的 80 端口
    option httpchk GET /index.html //通过 GET /index.html 检查服务器健康状态
    balance roundrobin //负载均衡调度算法使用轮询算法
    server inst1 192.168.10.101:80 check inter 2000 fall 3 //后端服务器 1,每 2 秒检查一次,3 次失败后下线
    server inst2 192.168.10.102:80 check inter 2000 fall 3

(2)修改haproxy.conf配置文件

vim /etc/haproxy/haproxy.cfg
(删除defaults模块下的内容,添加listen模块)

listen myweb 		
    bind 0.0.0.0:80    		
    option httpchk GET /index.html
    balance roundrobin 		
    server inst1 192.168.10.103:80 check inter 2000 fall 3
    server inst2 192.168.10.102:80 check inter 2000 fall 3
#启动服务
systemctl start haproxy

4:测试web群集

(1)测试高性能

浏览器访问101:
http://192.168.10.101

LVS负载均衡群集_第1张图片

(2)测试高可用

浏览器访问101:
http://192.168.10.101

LVS负载均衡群集_第2张图片

5:Haproxy的日志

添加设备绑定日志文件:

vim /etc/haproxy/haproxy.cfg
在global模块下添加一个日志记录
 log 127.0.0.1 local3

vim /etc/rsyslog.d/haproxy.cfg
$ModLoad imudp
$UDPServerRun 514
local3.* /var/log/haproxy.log
&~                      #标注参数的结束

添加权限:

touch /var/log/haproxy.log
chmod 640 /var/log/haproxy.log
chown root:adm /var/log/haproxy.log

启动服务并测试日志信息

#启动服务
systemctl restart rsyslog
systemctl restart haproxy

#测试日志信息
tail -f /var/log/haproxy.log

6:Haproxy的参数优化

关于 Haproxy 的参数优化,以下列举了几个关键的参数,并对各参数的生产环境的优化建议做了说明。

 Haproxy 参数优化:

参数 参数说明 优化建议
maxconn 最大连接数 根据应用实际使用情况调整,推荐 10240。"defaults"中的值不能超过"global"段定义
daemon 守护进程模式 生产环境建议使用守护进程模式启动
nbproc 负载均衡的并发进程数 建议设置为服务器CPU核数相等或2倍
retries 重试次数 节点多且并发量大时设为2-3次;服务器节点不多时可设为5-6次
option http-server-close 主动关闭http请求选项 生产环境建议启用,避免因timeout设置过长导致http连接堆积
timeout http-keep-alive 长连接超时时间 根据应用特点设置,建议10s
timeout http-request http请求超时时间 建议5~10s,加快http连接释放速度
timeout client 客户端超时时间 访问量大或节点响应慢时可设置较短,建议1min左右

你可能感兴趣的:(lvs,负载均衡,运维)