nginx实现负载均衡的6种方式

一、负载均衡

nginx负载均衡有6中方式(轮询,权重,ip_hash,最少连接least_conn,fair,url_hash),使用upsteam模块实现负载均衡

nginx负载均衡的意思大概是指多台服务器部署一个服务,但是这几台服务器的负载压力不同,处理程序的效率不同,负载均衡的作用就是按服务器可承受的负载将请求转发到对于的服务器中。 从而分担服务器的压力,让用户可以更快得到访问的数据。得到更好的体验。

例如设置使用nginx发布两个不同的html文件,使用nginx设置负载均衡,使用本地电脑访问nginx负载均衡的地址,刷新页面,将轮流显示两个页面。
页面1:
在这里插入图片描述
页面2:
在这里插入图片描述

1、轮询

将用户的请求按顺序依次转发到不同的服务器上
在nginx配置文件中server模块上增加以下内容

  	 upstream  test-server { #test-server的名字自己起
  	 #每一个server对应一个负载服务
       server    localhost:8080 ; 
       server    localhost:8081 ;
   }

2、权重

权重是基于轮询,利用weihgt设置服务的访问比例,此场景适用于服务器可承受的负载压力不一致时,例如A(192.168.42.174)服务器可承受1个访问请求,B(192.168.42.175)服务器可以承受两个访问请求,此时就可以使用weihgt方式设置比例为1:2。当有3个用户同时访问时,其中A服务器处理1个访问请求,B服务器处理2个访问请求,从而实现负载均衡。
nginx配置如下

  	 upstream  test-server { #test-server的名字自己起
  	 #每一个server对应一个负载服务
       server    192.168.42.174:8080 weight=1;
       server    192.168.42.175:8081 weight=2;
     }

3、ip_hash

ip_hash是将某台电脑的访问请求绑定到一个后端服务器上,如两个不一致的前端页面,设置ip_hash方式后,若访问到的时test2页面,则无论怎么刷新页面,至显示test2页面
nginx配置文件如下:

  	 upstream  test-server { 
  	   ip_hash;
       server    localhost:8080 ; 
       server    localhost:8081 ;
     }

ip_bash可与weight配合使用,使用ip_hash时,可以解决登录失效的情况

  	 upstream  test-server { 
  	   ip_hash;
       server    localhost:8080 weight=2;
       server    localhost:8081 weight=1;
     }

4、最少连接least_conn

将用户的请求转发到有最少处理请求的服务器中,若A目前处理了5个请求,B处理了10个请求,当我的电脑再次访问nginx时,则我的请求将会转发到A服务器中,least_conn可与weight配合使用
nginx配置文件如下:

   upstream  test-server {
       least_conn;
       server    localhost:8080;
       server    localhost:8081;
   }

nginx.conf配置文件内容详解

upstream  test-server {
   #least_conn;
   server    localhost:8080;
   server    localhost:8081;
   }
server {
    listen       80;
    server_name  localhost;
    location / {
    proxy_pass http://test-server;
        proxy_redirect default;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}


server {
    listen       8080;
    server_name  localhost;
    location / {
        root   html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

server {
    listen       8081;
    server_name  localhost;
    location / {
        root   html2;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

后续更新

  • 18
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginx是一高性能的web服务,它提供了多方式实现负载均衡,以满足大量用户访问的需求,提升服务的稳定性和性能。 一、基于IP Hash算法负载均衡 IP Hash算法是一基于客户端IP地址的负载均衡策略,nginx会根据请求的客户端IP地址,将请求分配给后端的服务。当第一次请求来自一个客户端时,nginx会取得请求中的客户端IP地址,并通过哈希算法计算得出该请求应该分配到的服务。 二、Round Robin负载均衡 Round Robin负载均衡算法是一按照预设的规则顺序轮流选择服务的方法。nginx会将请求平均分配给多个服务,在遍历完所有服务以后从头开始重新选择。 三、Least Connections负载均衡 Least Connections算法是一根据实时服务的连接数动态分配请求的方法。nginx会根据服务的连接数来判断请求应该向哪台服务分配。该算法通常适用于后端服务性能不一的情况下,以保证业务的稳定性和可靠性。 四、ip_hash + weight负载均衡 ip_hash+weight算法是一将IP Hash算法和Round Robin算法结合起来的方法。nginx会首先使用IP Hash算法将请求分配到特定的服务,然后根据预先设置的权重轮流分配请求。 总之,nginx实现负载均衡有以上几种方式,不同的负载均衡策略适用于不同的应用场景,企业可以根据自身的业务特点和性能要求来选择适合的负载均衡算法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值