美文网首页
负载均衡

负载均衡

作者: Stargazes | 来源:发表于2020-03-09 10:00 被阅读0次

    [toc]

    负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

    语法配置

    upstream uuclass {
        server 192.168.205.10:80 weight=2;
        server 192.168.205.11:80 weight=4;
    }
    server {
        listen      81;
        server_name localhost;
        location / {
            proxy_pass http://uuclass;
            include proxy_params;
        }
    }
    

    在线演示

    可选参数调度状态

    参数 说明
    down 当前的server暂时不参与负载均衡
    backup 预留的备份服务器
    max_fails 允许请求失败的次数
    fail_timeout 经过max_fails失败后,服务暂停的时间
    max_conns 限制最大的接收连接数

    调度算法

    调度算法 说明
    轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务,如果后端某台服务器死机,自动剔除故障系统,使用户访问不受影响。
    weight(加权轮询) weight的值越大分配到的访问概率越高,主要用于后端每台服务器性能不均衡的情况下。或者仅仅为在主从的情况下设置不同的权值,达到合理有效的地利用主机资源。
    ip_hash 每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题。
    url_hash 按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器,可以进一步提高后端缓存服务器的效率。Nginx本身不支持url_hash,如果需要这种调度算法,则必须安装Nginx的hash软件包。
    least_conn 最少连接数,根据当前后端服务器所响应的客户端情况,把当前访问请求调度到后端服务器响应相对较少服务器上。

    你以为这样就完事了吗,错,万物都是两面性的,当你解决了一个问题,就会产生另一大堆问题,呵呵

    负载均衡引发的一系列问题

    session一致性问题

    如果你的网站有登录,那就要面临session的问题

    方法一:基于nginx的ip_hash策略

    upstream uuclass {
        ip_hash;   <-------here
        server 192.168.205.10:80 weight=2;
        server 192.168.205.11:80 weight=4;
    }
    

    方法二:session集中管理

    比较靠谱的解决方案是,把session存到Redis里,单独开一台服务器作为Redis服务器,Laravel可以很方便的配置session存储的driver,原生PHP可以修改php.ini

    • 存储到memcache
    session.save_handler = memcache
     
    session.save_path = "tcp://192.168.56.11:11211"
    
    • 存储到redis
    session.save_handler = redis
     
    session.save_path ="tcp://localhost:6379"
    

    提醒:别忘了给PHP安装memcache或者redis插件

    参考文章

    负载均衡集群中的session解决方案

    代码同步问题

    机器多的话,总不能一台一台去手动更新代码吧

    rsync,缓存、日志等文件过滤

    多台服务器环境搭建问题

    要保证每一台服务器的配置都一样,难道要手动一台一台去配置吗,这时候可以用到docker了

    日志排查麻烦

    反向代理隐藏了真实的IP地址,排查日志需要逐台排查

    吐槽

    负载均衡这种东西,云平台已经很成熟了,花点钱去买个现成的吧,如果是个人学习的可以自己搭建玩一玩,商用的还是用别人的产品比较靠谱,各种问题都替你考虑好了,配置起来也简单

    相关文章

      网友评论

          本文标题:负载均衡

          本文链接:https://www.haomeiwen.com/subject/eocudhtx.html