`
bit1129
  • 浏览: 1067851 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Nginx四】Nginx作为HTTP负载均衡服务器

 
阅读更多

 Nginx的另一个常用的功能是作为负载均衡服务器。一个典型的web应用系统,通过负载均衡服务器,可以使得应用有多台后端服务器来响应客户端的请求。一个应用配置多台后端服务器,可以带来很多好处:

 

负载均衡的好处

  • 增加可用资源
  • 增加吞吐量
  • 加快响应速度,降低延时
  • 出错的重试验机制

Nginx主要支持三种均衡算法:

  • round-robin
  • least-connected 负载饱和度算法,Nginx会将请求转发到链接数最少的那太机器上
  • ip-hash  基于访问IP的hash值进行请求分发,适用于一个session的请求必须发送到同一台机器(比如有些Service是有状态)

负载均衡默认配置(round-robin)

 

http {
    upstream loadbalancer1 {
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }

    server {
        listen 80; 

        location / {
            proxy_pass http://loadbalancer1;
        }
    }
}
  • 默认的负载均衡服务器采用的是均衡算法是round-robin,按顺序依次处理请求
  • 以上配置将发送给Nginx的所有请求转发给代理服务器loadbalancer1,而loadbalancer1是一个配置了三个server的集群环境,每个请求由srv1,srv2,srv3中的一台机器来处理

 

负载均衡配置(最少链接)

 

http {
    upstream loadbalancer1 {
        least_conn;
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }

    server {
        listen 80; 

        location / {
            proxy_pass http://loadbalancer1;
        }
    }
}
Least-Connected均衡策略适用于请求的场景是有些请求时间长,有些请求时间很多,这样,每次分发时,可以将请求分发到由于执行时间短而空闲的机器
 

负载均衡配置(IP Hash)

 

http {
    upstream loadbalancer1 {
        ip_hash;
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }

    server {
        listen 80; 

        location / {
            proxy_pass http://loadbalancer1;
        }
    }
}
ip_hash均衡策略适用于,将一个客户端(来自同一个IP)的连续请求发送到同一个机器上,这样间接的实现了session保持的功能

 

负载均衡加权配置

http {
    upstream loadbalancer1 {
        server srv1.example.com;
        server srv2.example.com weight=3;
        server srv3.example.com;
    }

    server {
        listen 80; 

        location / {
            proxy_pass http://loadbalancer1;
        }
    }
}

 

通过weight指令,可以为某台机器设置一个权重,如果一个机器的权重设置的比较高,那么这台机器响应请求的可能性就会相应的变大。这通常适用于几台机器的性能不同,让性能好的机器多处理一些请求,让性能差的机器少处理一些请求

说明

上面的配置是针对默认的round-robin的,假如有5个请求来,那么srv1和srv3每个分到一个请求,而srv2将分得3个请求。从这个角度上看,对于round-robin均衡下的weight,应该是用了类似虚拟节点的概念,给srv2分配三个虚拟节点

如果是ip_hash的那么加上weight之后会影响hash算法的计算,因此基于ip_hash的负载均衡,一开始没加weight,后来加了,则会应用ip hash结果,即本来由srv处理的请求结果变成有srv2处理了,在这种情况下,通过reload不停机的方法加载weight选项,可能会导致一些问题

 

 

 

 

 

 

 

 
分享到:
评论

相关推荐

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

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

    nginx四层代理测试 及SLB负载均衡功能配置测试

    nginx 四层代理测试 及SLB负载均衡功能配置测试 本文档旨在介绍nginx 四层代理测试 及SLB负载均衡功能配置测试的详细结果和结论。通过对nginx 四层代理和SLB负载均衡功能的测试,我们可以了解到其在实际应用中的优...

    nginx+redis负载均衡、session共享

    作为反向代理,Nginx接收来自客户端的请求并将其转发到后端服务器,这样可以隐藏内部网络结构,提高安全性,同时通过负载均衡策略将请求分发到不同的服务器,减轻单台服务器的压力。 负载均衡是Nginx的核心功能之一...

    nginx负载均衡实现

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

    Nginx++Keepalived+Tomcat负载均衡&动静分离

    服务器方面,准备四台服务器,分别作为调度器(Nginx+Keepalived)、服务器池(Tomcat)、数据库服务器(Mysql)和客户端。在软件方面,需要准备Nginx、Keepalived、Tomcat、Mysql和jdk安装包,以及SL会员商城项目...

    nginx+eureka实现负载均衡实例

    `nginx` 是一款高性能的反向代理服务器,常用于实现负载均衡,而 `Eureka` 是 Netflix 提供的一个服务注册与发现组件,是微服务架构中的关键组件。本实例将讲解如何结合 `nginx` 和 `Eureka` 实现微服务的负载均衡,...

    nginx配置 +负载均衡+https协议

    - 对于负载均衡,可以通过在Nginx配置文件中定义多个后端服务器,并使用`proxy_pass`指令来实现。 ```nginx upstream backend { server backend1.example.com; server backend2.example.com; } server { ...

    Nginx与tomcat 负载均衡

    Nginx与Tomcat的负载均衡是指通过Nginx服务器来实现Tomcat集群的负载均衡,以提高系统的高性能和可扩展性。下面是实现负载均衡的详细步骤和知识点: 一、环境准备 * Nginx 1.8.0 * Apache Tomcat 6.0.33 二、目标...

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

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

    Keepalived+Nginx实现高可用Web负载均衡

    ### Keepalived+Nginx 实现高可用Web负载均衡 #### 场景需求 在现代互联网应用中,网站和应用程序需要处理大量的用户请求,并确保即使在服务器出现故障的情况下也能持续提供服务。为了满足这一需求,通常采用高可用...

    Nginx+Tomcat 负载均衡 3分钟搞定

    四、Nginx+Tomcat 实现负载均衡 要实现负载均衡,需要在 Nginx 服务器上配置 upstream 模块,以便将请求分配到多台 Tomcat 服务器上。具体配置如下: 1. upstream netitcast.com { server 127.0.0.1:18080 weight...

    Nginx+Tomcat+Redis实现负载均衡过程中session所需架包

    首先,Nginx是一个强大的HTTP和反向代理服务器,它能够通过分发请求到多个后端服务器来实现负载均衡。Nginx支持多种负载均衡策略,如轮询、最少连接数、IP哈希等。例如,可以使用以下配置实现轮询策略: ```nginx ...

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

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

    Nginx入门到精通搭建高可用集群负载均衡

    - **负载均衡**:通过分配请求到多个服务器,实现高并发和故障转移,提高服务可用性。 - **静态资源服务器**:高效地处理静态内容(如图片、CSS、JavaScript),比其他应用服务器(如 Tomcat)更快。 - **反向...

    nginx1.8 负载均衡

    Nginx 1.8 是一个高性能的 HTTP 和反向代理服务器,广泛应用于网站的负载均衡配置中。负载均衡是网络服务中的一个重要概念,它的主要目的是通过分散网络流量,提高系统的响应速度和可用性,避免单个服务器过载。在 ...

    web服务器集群负载均衡Nginx

    Nginx作为一款强大的HTTP和反向代理服务器,以及邮件代理服务器,它在实现Web服务器集群负载均衡方面扮演着至关重要的角色。Nginx以其高效的性能、低资源占用以及灵活的配置,使得它在处理大量并发连接时表现出色。 ...

    nginx软件负载均衡

    **Nginx负载均衡的实现方式** Nginx支持多种负载均衡策略,常见的有: 1. **轮询(round-robin)**:每个请求按时间顺序逐一分配到不同的服务器,如果服务器临时不可用,将跳过该服务器。 2. **最少连接数(least...

    nginx_tomcat8_redis负载均衡demo

    在这个“nginx_tomcat8_redis负载均衡demo”中,我们将探讨如何利用Nginx作为反向代理服务器,Tomcat作为应用服务器集群,以及Redis作为会话持久化存储,构建一个高效且可扩展的负载均衡解决方案。 首先,Nginx是一...

    centos6.4安装nginx+keepalived实现高可用负载均衡.doc

    高可用负载均衡是指在 Web 服务器前端部署多台 Nginx 服务器,每台 Nginx 服务器都能够处理用户请求,提高了系统的整体性能和可靠性。 一、安装必要的软件包 在安装 Nginx 和 Keepalived 之前,需要安装一些必要的...

Global site tag (gtag.js) - Google Analytics