那家建网站宝盒好用,杭州网站运营十年乐云seo,wordpress文章首字下沉,1688阿里巴巴国际站首页一、负载均衡(load balance)#xff1a; 1.一种服务基于硬件设备实现的高可用反向代理技术#xff0c;将特定的业务分担给指定的一个或者多个后端特定的服务器#xff0c;提高了业务的并发处理能力保证业务的高可用并方便对业务后期的水平动态扩展性。 2.使用负载均衡的原因…一、负载均衡(load balance) 1.一种服务基于硬件设备实现的高可用反向代理技术将特定的业务分担给指定的一个或者多个后端特定的服务器提高了业务的并发处理能力保证业务的高可用并方便对业务后期的水平动态扩展性。 2.使用负载均衡的原因 web服务器的动态水平扩展对用户无感知 增加业务并发访问及处理能力进而解决了单服务器的瓶颈问题 节约公网ip地址 隐藏内部服务器ip 配置简单 支持四层和七层支持动态下线主机 3.四层负载均衡 通过ipport决定负载均衡的去向且对流量请求进行nat处理转发到后台服务器 记录tcp、udp流量分别是由哪台服务器处理后续该请求连接的流量都通过该服务器处理 支持四层的软件 lvs重量级的四层负载均衡器 nginx:轻量级的四层负载均衡器 haproxy:模拟四层转发 4.七层负载均衡 通过url或主机ip进行流量识别根据应用层信息进行解析决定是否需要进行负载均衡 代理后台服务器与客户端建立连接 支持七层代理的软件 nginx:基于http协议 haproxy:七层代理会话保持 5.四层和七层的区别 它们主要是依据四层或七层的信息来决定怎样转发流量 四层负载均衡是通过发布三层的ip地址然后加四层端口号来决定哪些流量做负载均衡对需要处理的流量进行nat处理转发到后台服务器 七层负载均衡在四层的基础上考虑应用层四层无需解析报文消息内容七层可以支持解析应用层保温消息内容 四层负载均衡类似于路由器七层类似于代理服务器
二、haproxy 简介 1.haproxy是法国开发者威利塔罗在2000年使用c语言开发的支持高并发、高性能的tcp和http负载均衡器。支持cookie的持久性自动故障切换支持正则表达式和web状态统计 2.haproxy的安装和服务信息 环境客户端 eth0:172.25.254.10 haproxy eth0:172.25.254.100eth1:192.168.0.10 rs1 eth0:192.168.0.101 rs2 eth0:192.168.0.102 软件安装 基本配置信息其配置文件为 /etc/haproxy/haproxy.cfg该配置文件由两大部分组成 global:全局配置段 进程及安全配置相关参数 性能调整相关参数 debug参数 proxies:代理配置参段 defaults:为frontend,backend,listen提供默认配置 frontend:前端相当于nginx中的server{} backend:后端相当于nginx中的upstream{} listen:同时拥有前端和后端配置 global配置 chroot:锁定运行目录 chroot /var/lib/haproxy deamon:以守护进程运行 user,group,uid,gid:运行haproxy的用户身份 nbproc N: 开启的haproxy worker进程数默认进程数是1个 nbthread 1: 指定haproxy进程数开启的线程数默认为每个进程一个线程 cpu-map 1 0: 绑定haproxy worker 进程到指定的cpu,将1个worker进程绑定到0号cpu cpu-map 2 1: 绑定haproxy worker进程到指定cpu,将第二个work进程绑定到1号cpu maxconn N: 每个haproxy进程的最大并发连接数 pidfile: 指定pid文件路径 log 127.0.0.1 local2 info: 定义全局的syslog服务器 listen stats mode http bind 0.0.0.0:8888 stats enable log global stats uri /haproxy-status stats auth test:test proxies配置 frontend 前端servername,类似于nginx的虚拟主机server和lvs服务集群 frontend xiao-webserver-80 bind 172.25.254.100:80 mode http use_backend xiao-webserver-80-rs 调用backend的名称 backend 后端服务器组等于nginx的upstream和lvs中的rs服务器 定义一组后端服务器backend服务器将f被rontend进行调用其名称必须唯一且必须在listen或fronted中事先定义才可以使用否则服务无法启动 backend xiao-webserver-80-rs mode http server web1 192.168.0.101:80 check inter 3s fall 3 rise 5 server web2 192.168.0.102:80 check inter 3s fall 3 rise 5 listen webserver_80 bind 172.25.254.100:80 mode forwardfor server webserver1 192.168.0.101:80 check inter 3s fall 3 rise 5 server webserver2 192.168.0.102:80 check inter 3s fall 3 rise 5 3.socat工具 对服务器动态权重和其他状态可以利用socat工具进行调整其特点是在两个数据流之间建立双向通道。