`

nginx负载均衡方式用法教程

阅读更多

        有关nginx负载均衡的常用方式,包括轮询方式、按权重分配方式、ip hash分配方式,以及nginx负载均衡对server控制的方法。

一、nginx负载均衡方式

1、轮询方式

       轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器。

upstream test_up {  
    server localhost:8080;      
    server localhost:9090;      
    server localhost:9090;  
}  
  
server {  
    listen 80;  
    server_name test;  
  
    location /test.html {  
        proxy_pass http://test_up;  
    }
} 

       在浏览器地址栏中输入http://test/test.html时,nginx会按test_up中配置的服务器顺序依次访问后端服务器

2、最少连接

       Web请求会被转发到连接数最少的服务器上。 

upstream test_up {  
    least_conn; 
    server localhost:8080;      
    server localhost:9090;      
    server localhost:9090;  
}  
  
server {  
    listen 80;  
    server_name test;  
  
    location /test.html {  
        proxy_pass http://test_up;  
    }
} 

 

       只是在upstream节添加了least_conn配置。其它的配置同轮询配置。

3、ip hash(IP地址哈希)分配方式

       前述的两种负载均衡方案中,同一客户端连续的Web请求可能会被分发到不同的后端服务器进行处理,因此如果涉及到会话Session,会话会比较复杂。

多使用基于数据库的会话持久化。

       可以使用基于IP地址哈希的负载均衡方案。如此,同一客户端连续的Web请求都会被分发到同一服务器进行处理。

upstream test_up {  
    server localhost:8080 weight=1;  
    server localhost:9090 weight=2;  
    ip_hash;  
}  
  
server {  
    listen 80;  
    server_name test;  
	  
    location /test.html {  
       proxy_pass http://test_up  
    }  
} 

       ip hash方式是根据客户端ip进行hash后,将客户端请求分配给后端服务器。

       注意:以上代码中虽然在每个server后面配置了权重,但采用了IP HASH方式后,实际上权重并不会生效。

4、权重分配方式

       基于权重的负载均衡即Weighted Load Balancing,这种方式下,可以配置Nginx把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器。

upstream test_up {  
    server localhost:8080 weight=1;  
    server localhost:9090 weight=2;  
}  
  
server {  
	listen 80;  
	server_name test;  
	  
	location /test.html {  
        proxy_pass http://test_up;   
	}  
}

        以上代码nginx会根据权重值的分布,动态将前端请求分配给后端服务器

 

二、对server进行控制

1,down 表示单前的server暂时不参与负载

2,weight 默认为1.weight越大,负载的权重就越大。

3,max_fails:
允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误。

4,fail_timeout:
max_fails次失败后,暂停的时间。

5,backup:
其它所有的非backup机器down或者忙时,请求backup机器。
所以,这台机器压力会最轻。

nginx支持同时设置多组的负载均衡,可以为不用的server使用。

 

client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug。
client_body_temp_path    设置记录文件的目录 可以设置最多3层目录。
location                 对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡。

 

 

 

分享到:
评论

相关推荐

    Nginx实现负载均衡 web均衡负载 webservice负载均衡 Nginx实现负载均衡配制全说明

    Nginx实现负载均衡 web均衡负载 webservice负载均衡 Nginx实现负载均衡配制全说明 为了多台后台的web、webservice服务能均衡负载,可以使用nginx进行处理 1)配置文件全配制ok 2)有两个完整的web服务做例子,可以...

    nginx负载均衡配置,宕机自动切换方式

    在传统的nginx负载均衡配置中,并未直接提供后端服务器健康检查的功能,但nginx提供了几个重要的指令来帮助我们设置超时和重试机制,来间接保障服务的可用性。例如,proxy_connect_timeout指令用于设置nginx尝试连接...

    nginx负载均衡实现

    ### Nginx负载均衡实现 #### 一、负载均衡概念及必要性 负载均衡是一种用于在网络环境中分散工作负载的技术,通常用于改善网络性能、提高可用性和最大化资源利用。当单台服务器难以应对高流量和并发请求时,负载...

    nginx常用负载均衡5种策略

    nginx经常用到的负载均衡的5种策略,注意细节,部分属性不能一起使用。

    Linux下nginx负载均衡

    本文将详细解析"Linux下Nginx负载均衡"这一主题,包括Nginx的基本概念、配置原理以及如何在Linux系统中设置负载均衡。 Nginx是一款高性能的HTTP和反向代理服务器,同时也是一款邮件协议代理服务器。它的主要特点是...

    nginx负载均衡部署

    【标题】:“Nginx负载均衡部署” 在现代Web服务架构中,负载均衡扮演着至关重要的角色,它能够有效地分发网络流量,提高系统可用性和响应速度,防止单点故障。Nginx作为一款高性能的HTTP和反向代理服务器,常常被...

    Nginx负载均衡配置

    下面详细解释Nginx负载均衡的配置方法以及负载均衡策略。 首先,要配置Nginx与Tomcat实现负载均衡,需要准备两个Tomcat实例,每个实例可以部署一个简单的Web项目,例如通过在页面上标注不同的端口号,以便区分它们...

    nginx负载均衡教程

    ### Nginx负载均衡教程详解 #### 一、Nginx与负载均衡概念介绍 - **Nginx简介**:Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。其特点是占有内存少,...

    nginx负载均衡配置-windows.docx

    upstream 块用于指定负载均衡的服务器组,在这里我们使用 ip_hash 方式进行负载分流。然后,我们可以在 server 块中使用 proxy_pass 指令将请求代理到 upstream 服务器。 在 server 块中,我们还可以配置 SSL 加密...

    nginx负载均衡配置文件demo

    以上只是一些基本的Nginx负载均衡配置示例,实际使用中可能还需要结合其他高级特性,如URL重写、SSL/TLS终止、限速、限制访问等,来构建更复杂的Web服务架构。对于"conf"文件中的具体配置,可以根据需求进行详细解读...

    nginx负载均衡 nginx+tomcat tomcat实现负责均衡

    ### Nginx与Tomcat实现负载均衡的知识点详解 #### Nginx简介及特性 Nginx是一款由Igor Sysoev开发的高性能HTTP服务器和反向代理服务器,以其出色的稳定性和低系统资源消耗而著称。最初是为俄罗斯访问量排名第二的...

    nginx负载均衡.docx

    【Nginx负载均衡】 Nginx是一款高性能的HTTP和反向代理服务器,常用于实现负载均衡,以提升系统的可用性和响应效率。在阿里云服务器上搭建Nginx负载均衡,可以有效地分发请求到多台后端服务器,降低单台服务器的...

    负载均衡器技术Nginx和F5的优缺点对比

     在一台服务器的操作系统上,安装一个附加软件来实现负载均衡,如Nginx负载均衡(我们管理系统平台使用的也是这款均衡器)。它的优点是基于特定环境、配置简单、使用灵活、成本低廉,可以满足大部分

    nginx+redis负载均衡、session共享

    在构建高性能、高可用的Web服务时,"nginx+redis负载均衡、session共享"是一个常见的解决方案。这个方案结合了Nginx的反向代理和负载均衡能力,以及Redis的内存数据存储和分布式特性,用于处理高并发场景下的HTTP...

    nginx 负载均衡配置教程

    ### NGINX负载均衡配置详解 #### 一、负载均衡概念与重要性 负载均衡是分布式计算中的一个重要概念,主要用于在网络中将工作负载分布到多个计算机、网络链接、CPU或其他资源上,从而优化资源利用、最大吞吐量、...

    Nginx负载均衡案例

    **Nginx负载均衡案例** 在现代Web服务架构中,负载均衡是不可或缺的一部分,它能够有效地分散网络流量,提高服务的可用性和响应速度。Nginx作为一款高性能的HTTP和反向代理服务器,广泛用于实现负载均衡。在这个...

    nginx 负载均衡与反向代理资源

    在Win7 64位系统上安装Nginx,可以利用其强大的负载均衡和反向代理功能,优化网站性能并提升可用性。** ### 一、Nginx的安装 1. **下载Nginx安装包**:首先,你需要从Nginx官方网站获取适用于Windows 64位系统的...

Global site tag (gtag.js) - Google Analytics