http://blog.chinaunix.net/uid-22312037-id-4081140.html
一、分配方式
Nginx的upstream支持5种分配方式,下面将会详细介绍,其中,前三种为Nginx原生支持的分配方式,后两种为第三方支持的分配方式:
1、轮询
轮询是upstream的默认分配方式,即每个请求按照时间顺序轮流分配到不同的后端服务器,如果某个后端服务器down掉后,能自动剔除。
upstream backend {
server 192.168.1.101:8888;
server 192.168.1.102:8888;
server 192.168.1.103:8888;
}
2、weight
轮询的加强版,即可以指定轮询比率,weight和访问几率成正比,主要应用于后端服务器异质的场景下。
upstream backend {
server 192.168.1.101 weight=1;
server 192.168.1.102 weight=2;
server 192.168.1.103 weight=3;
}
3、ip_hash
每个请求按照访问ip(即Nginx的前置服务器或者客户端IP)的hash结果分配,这样每个访客会固定访问一个后端服务器,可以解决session一致问题。
upstream backend {
ip_hash;
server 192.168.1.101:7777;
server 192.168.1.102:8888;
server 192.168.1.103:9999;
}
4、fair
fair顾名思义,公平地按照后端服务器的响应时间(rt)来分配请求,响应时间短即rt小的后端服务器优先分配请求。
upstream backend {
server 192.168.1.101;
server 192.168.1.102;
server 192.168.1.103;
fair;
}
5、url_hash
与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。
upstream backend {
server 192.168.1.101;
server 192.168.1.102;
server 192.168.1.103;
hash $request_uri;
hash_method crc32;
}
其中,hash_method为使用的hash算法,需要注意的是:此时,server语句中不能加weight等参数。
关于,如何在负载均衡中使用upstream请参看这里。
二、设备状态
从上面实例不难看出upstream中server指令语法如下:
server address [parameters]
关键字server必选。
address也必选,可以是主机名、域名、ip或unix socket,也可以指定端口号。
parameters是可选参数,可以是如下参数:
down:表示当前server已停用
backup:表示当前server是备用服务器,只有其它非backup后端服务器都挂掉了或者很忙才会分配到请求。
weight:表示当前server负载权重,权重越大被请求几率越大。默认是1.
max_fails和fail_timeout一般会关联使用,如果某台server在fail_timeout时间内出现了max_fails次连接失败,那么Nginx会认为其已经挂掉了,从而在fail_timeout时间内不再去请求它,fail_timeout默认是10s,max_fails默认是1,即默认情况是只要发生错误就认为服务器挂掉了,如果将max_fails设置为0,则表示取消这项检查。
举例说明如下:
upstream backend {
server backend1.example.com weight=5;
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
}
更多详细信息请参看这里。
相关推荐
总之,Nginx 的 upstream 配置提供了灵活的负载均衡策略,可以根据业务需求选择合适的分配方式,并通过各种参数调整后端服务器的行为,以确保服务的稳定性和高效性。同时,了解并熟练掌握这些配置对于优化和维护大...
### Nginx安装与后端健康检查模块配置详解 #### 一、Nginx环境搭建与核心组件安装 **1.1 基础环境准备** - **操作系统**: CentOS 6.5 - **基本服务器配置**: 在安装过程中选择了“基本服务器”配置。 **1.2 安装...
《Nginx Upstream Hash模块详解与应用》 在Web服务器领域,Nginx以其高效、轻量级的特性赢得了广泛的应用。为了实现更灵活的负载均衡策略,Nginx提供了一系列的upstream模块,其中,`nginx_upstream_hash`模块是...
**Nginx配置Upstream负载均衡详解** 在现代Web服务架构中,负载均衡是一项至关重要的技术,它能够有效地分散网络流量,确保服务器集群的稳定性和高可用性。Nginx作为一款高性能的反向代理服务器和HTTP缓存服务器,...
**Nginx Upstream Hash 模块详解** Nginx 是一款高性能的 Web 和反向代理服务器,以其轻量级、高效能和高并发性著称。在 Nginx 的配置中,`upstream` 模块是用于处理负载均衡的,它允许将客户端请求分发到一组后端...
**Nginx Upstream Fair算法详解** Nginx是一款高性能的HTTP和反向代理服务器,广泛应用于网站负载均衡和静态内容处理。在处理后端服务器的负载均衡时,Nginx提供了多种策略,其中之一就是"Fair"(公平)算法。Fair...
Nginx 的 Fair 负载均衡模块提供了一种智能且高效的方式来分配请求到不同的后端服务器,特别是在后端服务器处理能力不一致的情况下,能够显著提升系统的整体性能和用户体验。通过本文的详细介绍,相信您已经掌握了...
**Nginx Upstream Check 模块详解** `nginx_upstream_check_module-master` 是一个由淘宝技术团队开发的Nginx扩展模块,主要用于健康检查和负载均衡器中的服务器状态监控。这个模块对于运行大规模分布式系统,尤其...
【Nginx 配置详解】在 CentOS 6.5 环境下,配置 Nginx 1.6.2 可以实现多种高级功能,包括 SSL 双向认证、负载均衡和反向代理。以下是一份详细的配置步骤指南。 ### 1. 安装与准备 首先,确保你的系统是 CentOS 6.5...
其中,upstream模块是Nginx用于负载均衡的核心功能之一。负载均衡主要作用是将网络的流量尽可能均匀地分配到多个服务器上,以提高系统的处理能力和服务的稳定性。 在Nginx配置中,upstream模块的配置通常位于http块...
**Nginx安装详解及tar.gz文件解析** 在IT领域,Nginx是一个广泛应用的高性能Web服务器和反向代理服务器,以其高效的并发处理能力和轻量级的系统资源消耗而受到赞誉。本文将深入探讨Nginx的安装过程,并介绍如何处理...
### Nginx 部署配置详解:Proxy Read Timeout #### 概述 在Nginx的配置过程中,为了确保服务器能够稳定、高效地处理来自客户端的请求,我们需要合理设置与代理相关的超时参数。这些参数包括但不限于`proxy_connect...
**Nginx高性能Web服务器详解** Nginx是一款开源、高性能、轻量级的Web服务器/反向代理服务器,...对于Nginx的高级用法和优化技巧,可以参考《Nginx高性能Web服务器详解》这本书,相信会带给你更深入的理解和实践经验。
在Linux环境中,特别是CentOS 7这样的服务器操作系统中,Nginx被广泛用作Web服务器和反向代理,用于实现高可用性和负载均衡。本文将详细介绍如何在Linux上搭建Nginx集群,以及如何进行详细配置,以实现负载均衡功能...
Nginx 配置文件详解 Nginx 配置文件是 Nginx 服务器的核心组件之一,负责控制 Nginx 服务器的行为和性能。本文将详细解释 Nginx 配置文件的结构和各个组件的作用。 全局配置 Nginx 配置文件的第一部分是全局配置...
本文将详细介绍如何在Windows环境下安装和配置Nginx,以实现本地服务器的功能,并通过配置`server_name`和`root`目录来访问目标文件。...Nginx的强大之处在于其灵活性和可扩展性,可以根据具体需求进行定制化配置。
本资料《Nginx高性能Web服务器详解》将深入探讨Nginx的核心特点和配置技巧,帮助读者理解和掌握其强大功能。 ### 1. Nginx的架构原理 Nginx采用事件驱动的异步非阻塞模型,这一设计使得它在处理大量并发连接时表现...
【Nginx高性能Web服务器详解】 Nginx是一款开源、高性能、轻量级的Web服务器/反向代理服务器,广泛应用于互联网领域,以...要了解更多细节,可以参考提供的"nginx详解pdf"文档,其中包含了更全面的技术点和实例解析。
【Nginx与Upstream Check Module详解】 Nginx是一款高性能、轻量级的Web服务器/反向代理服务器,广泛应用于互联网服务。它的模块化设计使得功能扩展灵活,其中一个重要的特性就是支持通过upstream模块来负载均衡...