负载均衡配置
网络层 七层 TCP/IP 五层
load balance LB
四层负载均衡 网络传输层 转发网络 haproxy lvs
七层负载均衡 应用层 反向代理方式 haproxy nginx
问题:四层负载均衡和七层负载均衡优缺点?
①四层负载均衡,直接网络转发,效率更高,没有判断请求的来源等功能,不能够抵御ddo
②七层负载均衡 智能型负载均衡 基于url进行负载均衡 可以判断用户的来源等相关操作 nginx作为应用型防火墙
1、负载均衡原理图
此架构,最少需要三台服务器
通过虚拟机克隆的方式,快速拥有多台虚拟机
克隆虚拟机操作步骤:
注意克隆虚拟机,虚拟机必须处于关机状态
负载均衡服务器 lnmp 192.168.19.101
Web服务器1 lnmp1 192.168.19.102
Web服务器2 lnmp2 192.168.19.103
2、实战Nginx负载均衡服务器
①配置虚拟机为lnmp的nginx服务器的负载均衡
注意web1和web2的ip,要填写正确。
②用户访问域名解析到负载均衡服务器[虚拟机lnmp]
③启动多台服务器的服务
负载均衡只需启动nginx即可
其他需要启动nginx和php-fpm
为了识别分发,可以在不同web服务器写入不同的识别信息,真是环境下不需要。
nginx中实现的负载均衡算法5种,官方支持默认3种
①rr轮询算法
②权重算法 weight 设置分发的权重
③ip_hash 同样的ip来源,请求同一个服务器
2、SESSION丢失问题
不同的服务器,需要同一个session判断用户的状态。
默认session是存储到服务器的硬盘文件中,不能够共享
session丢失会造成以下问题:
①用户状态无法判断 用户是否登录
②验证码没有办法验证 验证码生成值和校验的服务器不在一起
解决方案:
①入库 memcache mysql redis
在tp5项目中,直接在配置文件配置即可,注意memcache启动和允许远程连接,php的memcached对应扩展一定要安装。
②磁盘网络映射 磁盘共享方式 nfs
③ip_hash hash一致性 让同一个用户访问同一台服务器