负载均衡随着互联网信息的爆炸性增长,负载均衡(load balance)已经不再是一个很陌生的话题, 顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应 足够快,给用户很好的体验。 快速增长的访问量和数据流量催生了各式各样的负载均衡产品,很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎 nginx就是其中的一个,在linux下有Nginx、LVS、Haproxy等等服务可以提供负载均衡服务,而且Nginx提供了几种分配方式(策略)。
nginx分配服务器策略:第一种轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down掉,能自动剔除。 第二种 weight weight代表权重默认为1,权重越高被分配的客户端越多。 第三种 ip_hash 每个请求按访问 ip的hash结果分配,这样每个访客固定访问一个后端服务器。 第四种 fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。
实现案例:
1、实现效果浏览器地址栏输入地址 http://192.168.200.130/test/a.html 自动请求8080和8081两台服务器的a.html页面
2、准备工作(1)准备两台 tomcat服务器,一台端口为8080,一台端口为8081。 (2)在两台tomcat里面的webapps目录中,创建名称是test文件夹,在test文件夹中创建 页面 a.html,用于测试。
3、在 nginx的配置文件中进行负载均衡的配置,修改配置文件nginx.conf修改完配置后,重启nginx。 在浏览器中输入//192.168.200.130/test/a.html ,多次刷新,便可以看到每次请求的是不同的Tomcat服务器: 这个效果就是nginx实现的负载均衡,将请求转发到不同的服务器处理。
4、切换不同访问策略使用权重策略,修改weight的值,将请求根据权重分配到不同的服务器上。 修改完配置后,重启nginx。 刷新浏览器,可以看到,服务器1连续被访问两次,服务器2只会被访问一次。 使用ip_hash策略,该策略代表一个IP地址的请求都会转发到一台服务器上处理。 具体配置如下: 修改完配置后,重启nginx。 刷新浏览器,可以看到,所有的请求都被服务器2处理。 这样每个访客固定访问一个后端服务器,可以解决 session的问题。 使用fair策略,按后端服务器的响应时间来分配请求,响应时间短的优先分配。 这种方式需要单独安装fair相关的模块,因为fair不是nginx自带的。 下载地址: 关于Docker容器Dead状态的分析 docker部署vue项目的实现步骤 |