• nginx负载均衡


    1.负载均衡的方式

    一种是硬件来进行解决常见的硬件有NetScaler、F5、Radware和Array等商用的负载均衡器,但是它们是比较昂贵的

    一种是通过软件来进行解决,常见的有LVS,Nginx,Apache等,他们是基于Linux系统并且开源的负载均衡策略.

    2.nginx常用的负载均衡的算法

    轮询(默认算法)----每个请求会依次分配给后端不同的应用服务器,不理会后端服务器的实际压力

    加权轮询---权重越大的服务器,被分配到的次数就会越多,通常用于后端服务器性能不一致的情况

    IP hash-----当同IP进行重复访问事会被指定到上次访问到的服务器,可以解决动态网站session共享问题

     

    upstream模块常用参数说明:

    server 192.168.0.100:80  负载均衡后端RealServer的IP或者域名,口不写的话默认80。高并发场景用域名,再通过DNS进行负载均衡
     weight=5  权重,默认为1,权重越大接收的请求越多
     max_fails=2  最大尝试的失败次数,默认为1,0表示禁止失败尝试
     fail_timeout=10s  失败超时时间,默认是10秒,通常3s左右比较合适
     backup  热备配置,前段RealServer出现问题后会自动上线backup服务器
     down  标志务器不可用,这个参数通常配合IP_HASH使用

    3.搭建Keepalived:(Keepalived需要依赖openssl)

    抛出问题:

           主机和备机都安装了nginx,如果主机宕了,怎么启用备机的nginx呢?怎么设置主机和备机呢? 如果主机死了怎么进行故障移除呢? 如果主机从不可用到可用状态又怎么进行恢复添加呢? 这些功能都是可以通过Keepalived来进行设置的.

          首先Keepalived可以在主机上产生一个虚拟的ip, 这里叫做vip(v是virtual的意思):192.168.200.150, keepalived会将这个vip绑定到交换机上.
    当用户访问主机:192.168.200.129时, 交换机会通过这个ip和vip的对应找到192.168.200.129上的Nginx进行处理.
    如果当有一天192.168.200.129上的Nginx挂掉的时候, Keepalived会立即在备机上生成一个相同的vip: 192.168.200.150, 当用户继续访问192.168.200.129时, 交换机上已经绑定了vip, 这时发现这个vip是存在于192.168.200.130上面的, 所以直接将请求转发到了备机上. 
    如果主机被修复好能够继续对外提供服务时, 这时keepalived会将主机上继续生成这个vip, 同时回收在备机上生成的vip. 这个是通过心跳检查来判断主机已恢复使用.

     

    参考网址1:https://www.cnblogs.com/wang-meng/p/5861174.html

    参考网址2:http://www.linuxidc.com/Linux/2016-04/130350.htm

  • 相关阅读:
    MyBatis-XML和注解
    spring-Servlet/Tomcat/Spring
    spring-过滤器与拦截器
    spring-spring task原理及使用
    spring-事务源码解析-todo
    架构设计-SOA架构和微服务架构的区别
    架构设计-微服务架构初步学习
    Python 中 OS 模块获取文件/目录路径方法
    python 中 pymysql 模块链接 MySQL 数据库,进行数据验证及封装
    Python 接口测试的步骤、特点、关注点、get和post 区别
  • 原文地址:https://www.cnblogs.com/xiaozhijing/p/8392876.html
Copyright © 2020-2023  润新知