upstream负载均衡

upstream模块是Nginx中用于负载均衡的组件,它可以定义一组服务器并分配权重,实现轮询、ip_hash和最少连接等负载均衡算法。ip_hash确保相同IP的请求始终定向到同一台服务器,而round-robin则根据权重进行轮询分配。此外,还可以通过max_fails和fail_timeout参数来设置服务器故障检测。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

upstream 模块

==========================================
与 proxy 模块结合使用的模块中,最常用的当属upstream模块。
upstream模块可定义一个新的上下文,它包含了一组upstream服务器,
这些服务器可能被赋予了不同的权重、不同的类型甚至可以基于维护等原因被标记为down。

示例:==================

upstream  mywebs {
	  ip_hash;
	  server 192.168.10.61  weight=5   max_fails=3  fail_timeout=10s;  
	  server 192.168.10.62  weight=5   max_fails=3  fail_timeout=10s;
	}
	
   location / {
        proxy_pass  http://mywebs;
        proxy_redirect  default;
        }

upstream模块常用的指令有:==============

负载均衡算法 :

========================================
upstream模块的负载均衡算法主要有三种,轮调(round-robin)、ip哈希(ip_hash)和 最少连接(least_conn)三种。

ip_hash:基于客户端IP地址完成请求的分发,它可以保证来自于同一个客户端的请求始终被转发至同一个upstream服务器;
round-robin : 基于 权重的轮询。不需要明确注明,在各个节点中设置 权重 weight 即可。
least_conn: 最少连接调度算法;

定义一个upstream服务器的地址,还可包括一系列可选参数,如:============
weight:权重(主要用于 轮询调度。)

max_fails:
fail_timeout:

某个server连接失败了max_fails次,则nginx会认为该server不工作了。
同时,在接下来的 fail_timeout 时间内,nginx不再将请求分发给失效的server。

fail_timeout默认为10s,max_fails默认为1。就是说,只要某个server只要失败过一次,就会计数,
当台服务器重新上线时,检查它的失败次数,如果达到一次,就在10s内先不要发送请求给它。


backup:用于fallback的目的,所有服务均故障时才启动此服务器,可以用它来设置一台  Sorry Server ;
down:手动标记其不再处理任何请求;

**例如:============================**
在这里插入图片描述
配置示例, 代理服务器本机的 8080 作为 sorry Server : =======================

upstream mywebs {
	#ip_hash;
	server 192.168.10.5:80  weight=1  max_fails=1 fail_timeout=3s;
	server 192.168.10.6:80  weight=1  max_fails=1 fail_timeout=3s;
	server 192.168.10.14:8080   backup;
    }

    server {
        listen       80;
        server_name  www.baby.com;
        access_log  /usr/local/nginx/logs/new.com.access.log  main;

	location = /status {
		stub_status on;
		allow 192.168.10.1;
		deny all;
	}

   location   /  {
	proxy_pass http://mywebs;
	proxy_set_header X-Real-IP  $remote_addr;
	proxy_redirect off;
	#proxy_set_header Host  $host;
	#proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
	proxy_connect_timeout 30;
	proxy_send_timeout 15;
	proxy_read_timeout 15;
	    }
	}

	server {
	listen  192.168.10.14:8080;
	location / {
	 	root  /data/web-data/sorry.com;
		index  index.html;
	   }
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值