nginx02_单机版nginx负载均衡实现

一 、单机版nginx负载均衡实现

1.1  负载均衡概念

        为了提高服务高可用,往往服务单元实现集群化部署,当客户端发出请求时,代理服务会获取所有的可用服务,根据配置一定的算法,从可用服务中选择一个进行请求及响应,这种机制叫负载均衡。

1.2 nginx单机版负载均衡的规划

 

 二、具体实现

2.1 再克隆webtest2并配置IP

        具体过程参考前面教程

        为了方便,使用webtest1来克隆webtest2

2.2 按照规划图配置web服务器,并启动测试

        启动webtest1和2

2.2.1 在webtest1上操作:

        cp -r /usr/apache-tomcat/ /usr/tomcat1

        cp -r /usr/apache-tomcat/ /usr/tomcat2

        cp -r /usr/apache-tomcat/ /usr/tomcat3

        vim /usr/tomcat1/conf/server.xml

        :22     8001

        :69     8181

        vim /usr/tomcat2/conf/server.xml

        :22 8002

        :69 8082

        vim /usr/tomcat3/conf/server.xml

        :22 8003

        :69 8083

为了讲解负载均衡,让服务显示不同,方便后面测试

        vim /usr/tomcat1/webapps/test1/index.jsp

        :3          111111111111111111111

        vim /usr/tomcat2/webapps/test1/index.jsp

        :3          2222222222222222222222

        vim /usr/tomcat3/webapps/test1/index.jsp

        :3          3333333333333333333333

        启动tomcat:

        /usr/tomcat1/bin/startup.sh

        /usr/tomcat2/bin/startup.sh

        /usr/tomcat3/bin/startup.sh

        测试tomcat:

        http://192.168.140.62:8181/test1/

        http://192.168.140.62:8182/test1/

        http://192.168.140.62:8183/test1/

 另外一台配置和上面相同    端口改为 8184  8185  8186

2.2.2 配置nginx负载均衡

        vim /usr/local/nginx/conf/nginx.conf

2.2.3 测试nginx负载均衡

保证后台6台tomcat正常运行

重启nginx

 /usr/local/nginx/sbin/nginx  -s reload

浏览器请求: 

http://192.168.140.43/test/test1/

刷新在 62:8181-8183和 61:8184-8186   之间来回切换

三、nginx负载均衡算法

3.1 轮询算法(roundribbon)

        按照请求时间的先后顺序,把不同请求依次访问后端服务,当某一台服务器出现故障,nginx会自动把故障服务剔除,如果故障机恢复正常,nginx会自动让它再次参与负载均衡。

具体配置:

http://192.168.140.43/test/test1/

让tomcat2关闭,刷新请求 让 tomcat2再次启动,再刷新请求

3.2 按权重轮询(weight roundribbon)

根据服务器性能不同,让不同的服务承载不同的访问量。解决服务器性能差异问题。

具体实现:

weight  配置取值返回从1-255 数据越大,权重越大,默认值为1

重启nginx

 /usr/local/nginx/sbin/nginx  -s reload

或者(麻烦)

/usr/local/nginx/sbin/nginx  -s stop

/usr/local/nginx/sbin/nginx

/usr/local/nginx/sbin/nginx -s start

 浏览器请求: 

http://192.168.140.43/test/test1/

 多次刷新请求,测试结果发现,权重越大出现的频率越高

3.3  ip_hash算法

        一旦配置ip_hash算法,就会按照客3户端IP进行hash运算,运算结果对总的服务数量取余,余数是几,就会跳转到该服务,并且以后的所有请求在同一IP时,都会请求到该服务。(在轮询或者权重轮询的基础上)。解决session不共享问题的。

具体实现:

 多次刷新不会该变内容

3.4 公平算法fair

        按照服务的响应时间来进行负载均衡,服务响应时间越短,负载的请求就会越大。

3.5 url_hash 算法

        按照uri的不同,负载到不同的服务器上。通俗的说,请求的url及参数相同,该请求每次都会到同一个服务器上。解决缓存利用率问题,提高缓存利用率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸡本蔡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值