将服务压力尽可能平摊到不同服务器的过程叫负载均衡
客户端将请求发送至控制负载均衡的节点,此节点根据调度算法在后端的服务池选择符合规则的服务器并将客户端请求转发至选定的服务器。
声明转发规则,指定代理节点转发请求到选定服务节点的方式(7/4)。
1. 四层负载。根据ip和port进行转发,三次握手发生在客户端和后端真实的服务器。负载节点拆包至传输层。
2. 七层负载。根据url进行转发,客户端到负载节点三次握手,负载节点到后端真实服务器三次握手。负载节点拆包至应用层。
七层负载均衡:haproxy , nginx
状态监控。
[root@master ~]# cat /etc/haproxy/haproxy.cfg
# 全局配置
global
log 127.0.0.1 local2 info # 日志位置,以及级别,一般不用info,用warning,alert
pidfile /run/haproxy.pid # pid文件位置
maxconn 4000 # 最大连接数
user haproxy # 用户
group haproxy
daemon
nbproc 1 # 工作进程
# 默认配置
defaults
mode http # 负载模式
log global
retries 3 # 对服务池中服务器状态的检查三次
option redispatch # 服务不可用后,重定向到其他健康服务器
maxconn 4000
contimeout 5000 # haproxy 与后端服务器建立连接的超时时间
clitimeout 50000 # 客户端与haproxy 连接空闲时间
srvtimeout 50000 # haproxy 与 真实服务器的连接空闲时间
option abortonclose # 服务器负载很高,自动杀死当前队列处理的比较久的连接
stats uri /admin # haproxy 状态信息
stats realm Private lands # 提示身份信息
stats auth admin:password # 隐藏版本号
stats hide-version # 隐藏版本号
frontend http-in # 流入部分
bind 0.0.0.0:80
mode http
log global
option httpclose # 用户连接过久,则关闭
acl html url_reg -i \\.html$
use_backend html-server if html
default_backend html-server # 默认
backend html-server
mode http
balance roundrobin # rr 轮询算法
option httpchk GET /index.html
cookie SERVERID insert indirect nocache
server -A real-server1:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
server -B real-server2:80 weight 2 cookie 4 check inter 2000 rise 2 fall 5
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞1
添加新评论0 条评论