Nginx篇03-负载均衡简单配置和算法原理

nginx的负载均衡配置,包括http、tcp和udp负载均衡,以及Round robinLeast connectionsLeast time(Nginx Plus专属)、Generic hashRandomIP hash(HTTP模块专属)的原理分析。

1、http负载均衡

我们先来看一小段配置文件

upstream backend {
     
  server 10.0.0.1:80  weight=1;  
  server nginx.example.com:80  weight=2; 
}

server {
   
	location / {
   
		proxy_pass http://backend;
	}
}

这是一个简单的使用upstream模块对http服务进行指定权重的负载均衡的配置文件,一般存放在nginx目录下的conf.d文件夹中。

server可以使用Unix socket、IP、DNS、FQDN等来进行服务器的指定,这里的Unix socket指的是POSIX操作系统中的组件,即用于进程间通信的那个Unix socket。也就是说如果做负载均衡的时候本机也作为server之一,使用scoket确实是可以有效提高速度的(对比DNS和IP等),因为都在同一个系统上,走进程间的通信比走网络通信要少了很多验证步骤和协议,通信的速度会更快。但是在实际业务中比较少使用这样的方式,一般都会直接使用IP方便定位主机和运维分析等。IP相比DNS和FQDN要少了一步域名解析的过程,理论上速度会快一些,但是DNS其实也可以做负载均衡,同时DNS和FQDN给了网络路由更多的控制权,实际怎么使用还要看具体的业务需求。

upstreamserver指令语法如下:

server address [parameters]
  • 关键字server必选

  • address也必选,可以是主机名、域名、ip或unix socket,也可以指定端口号

  • parameters是可选参数,可以是如下参数:

    • down:表示当前server已停用
    • backup:表示当前server是备用服务器,只有其它非backup后端服务器都挂掉了或者很忙才会分配到请求
    • weight:表示当前server负载权重,权重越大被请求几率越大,默认是1
  • max_failsfail_timeout一般会关联使用,如果某台server在fail_timeout时间内出现了max_fails次连接失败,那么Nginx会认为其已经挂掉了,从而在fail_timeout时间内不再去请求它,fail_time

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值