iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Nginx怎样实现负载均衡
  • 327
分享到

Nginx怎样实现负载均衡

2023-06-29 13:06:37 327人浏览 安东尼
摘要

这篇文章主要为大家展示了“Nginx怎样实现负载均衡”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Nginx怎样实现负载均衡”这篇文章吧。一、Nginx介绍Nginx是一款高性能的Http和反向

这篇文章主要为大家展示了“Nginx怎样实现负载均衡”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Nginx怎样实现负载均衡”这篇文章吧。

    一、Nginx介绍

    Nginx是一款高性能的Http和反向代理服务器,也是一个IMAP/POP3/SMTP服务器(电子邮件代理),最早开发这个产品的目的之一也是作为邮件代理服务器。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗及其高并发性能强而广泛应用于各种生产部署之中。而且nginx是基于事件驱动模型(epoll)实现的I/O多路复用,并通过异步、非阻塞的方式处理请求。在高连接并发的情况下,Nginx是Apache服务器不错的替代品。而我们为什么要选择Nginx呢?

    二、Nginx特点

    • 高并发、高性能;

    • 高可靠(可以7*24小时不间断运行);

    • 可扩展性强(高度模块化设计,添加模块平稳);

    • 作为 WEB 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接;

    • 作为负载均衡服务器:可以进行自定义配置,支持虚拟主机、支持URL重定向、支持网络监控等。

    • Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs少;

    • 处理静态文件,索引文件以及自动索引;

    • 反向代理加速(无缓存),简单的负载均衡和容错;

    • 支持热部署(可在不停止服务器的情况下升级nginx)。

    这就是为什么要选择Nginx的原因。而且Nginx的功能特点还不止这些,上面只是简单列举了几点常见功能。

    三、Nginx负载均衡

    在我们实际生产中,一台服务器的处理能力、存储空间是有限的, 不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求。这种情况下,更恰当的做法是增加一台服务器来分担原有服务器的访问及存储压力。实际上这就是我们所谓的负载均衡,Nginx作为负载均衡服务器,它通过反向代理来对后端多台服务器负载均衡。首先来说一下Nginx负载均衡策略及负载均衡算法

    3.1 认识 upstream 模块

    upstream 这个模块是写一组被代理的服务器地址(即定义的后端服务器列表中选取一台服务器接受用户的请求 ),然后配置负载均衡的算法。 来看一下最基本的负载均衡实例:

    upstream test {       server 10.20.151.114:80;      server 10.20.151.115:80;}server {      ....      location / {                      proxy_pass  http://test;     --请求转向 test 定义的服务器列表               }

    3.2 Nginx负载均衡策略

    (1)轮询

    最基本的配置方法,上面的例子就是轮询的方式,它是upstream模块默认的负载均衡默认策略。每个请求会按时间顺序逐一分配到不同的后端服务器。

    upstream test {       server 10.20.151.114:80; weight=1;      server 10.20.151.115:80; weight=2;}

    (2)ip_hash

    每个请求按访问IP的hash结果分配,同一个IP客户端固定访问一个后端服务器。可以保证来自同一ip的请求被打到固定的机器上,可以解决session问题。

    upstream test {   ip_hash;  --同一个IP客户端固定访问一个后端服务器      server 10.20.151.114:80; weight=1;      server 10.20.151.115:80; weight=2;}

    (3)url_hash

    按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器。一旦缓存住了资源,再此收到请求,就可以从缓存中读取。

    upstream test {   hash $request_uri;  --实现每个url定向到同一个后端服务器      server 10.20.151.114:80; weight=1;      server 10.20.151.115:80; weight=2;}

    (4)least_conn

    把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。

    upstream test {   least_conn;  --把请求转发给连接数较少的后端服务器      server 10.20.151.114:80; weight=1;      server 10.20.151.115:80; weight=2;}

    (5)weight

    权重方式,在轮询策略的基础上指定轮询的几率。

    upstream test {       server 10.20.151.114:80; weight=1;      server 10.20.151.115:80; weight=2;  --轮询的几率相对上一条要大}

    (6)fair

    此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。

    upstream test {       server 10.20.151.114:80; weight=1;      server 10.20.151.115:80; weight=2;      fair;  --实现响应时间短的优先分配}

    nginx负载均衡配置状态参数

    • down:表示当前的server暂时不参与负载均衡。

    • backup:预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻。

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

    • fail_timeout:在经历了max_fails次失败后,暂停服务的时间单位秒。max_fails可以和fail_timeout一起使用。

    Nginx可分为二层、三层、四层、七层负载均衡。 所谓的二层就是基于Mac地址的负载均衡, 三层就是基于IP地址的负载均衡,四层就是基于IP+端口的负载均衡,七层就是基于URL等应用层信息的负载均衡。因篇幅较长这里不再做具体的介绍,有兴趣的可自行百度。这里以七层负载均衡来做实例。

    3.3 Nginx负载均衡实例

    环境准备:准备3台Nginx服务器,一台作为负载均衡服务器,其它两台作为后端服务器。

    151.240 ----proxy_server(负载均衡服务器)

    151.112 ----server1(后端服务器1)

    151.113 ----server2(后端服务器2)

    (1)负载均衡服务器配置

    vim /etc/nginx/nginx.conf        --配置主配置文件vim /etc/nginx/conf.d/test.conf  --配置子配置文件

    Nginx怎样实现负载均衡

    Nginx怎样实现负载均衡

    (2)后端服务器配置

    vim /usr/local/nginx/conf/nginx.conf    --修改配置文件vim /usr/local/nginx/html/index.html    --添加测试数据

    Nginx怎样实现负载均衡

    Nginx怎样实现负载均衡

    (3)负载均衡测试

    在浏览器端访问http://10.20.151.240/,在实际生产中,这两个页面返回的结果是一样的,这里是为了测试效果,所以返回了不同的内容。而为什么刷新后又会返回不同结果呢?那是因为负载均衡默认的均衡策略(或算法)是轮询,所以每刷新一次就会从不同的后端服务器返回不同的请求结果,减轻单个后端服务器的访问量,提升客户端的访问效率,从而达到负载均衡的效果。

    Nginx怎样实现负载均衡

    Nginx怎样实现负载均衡

    当我添加权重(weight)时

    Nginx怎样实现负载均衡

    再次访问http://10.20.151.240/

    Nginx怎样实现负载均衡

    Nginx怎样实现负载均衡

    加权重和没加权重有什么区别呢?在实际生产中,我们一般会将配置较高的服务器的权重设置高一点,其实就是客户端在访问时,权重较高的服务器会被多次请求,这样能减轻配置较低的服务器的请求量,从而更好的实现负载均衡。

    当我添加backup状态参数时

    Nginx怎样实现负载均衡

    再次访问http://10.20.151.240/

    Nginx怎样实现负载均衡

    此时我故意停掉第一台后端服务器,继续访问http://10.20.151.240/

    Nginx怎样实现负载均衡

    当我给113这台后端服务器添加backup后,它就会作为热备服务器,添加的主要目的就是当我其他后端服务器都宕机的情况下,我的热备服务器还能继续提供同样的服务(注意:在其他后端服务器还未宕机之前,该热备服务器是不工作的)。因此负载均衡不仅能达到各个后端服务器负载的均衡,同时通过配置相关转态参数还能保证客户端请求时不造成服务器宕机的情况,保证了后端服务器的稳定性。其他状态参数这里我不再做演示(因为配置方式都一样)。

    以上是“Nginx怎样实现负载均衡”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

    --结束END--

    本文标题: Nginx怎样实现负载均衡

    本文链接: https://www.lsjlt.com/news/325094.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Nginx怎样实现负载均衡
      这篇文章主要为大家展示了“Nginx怎样实现负载均衡”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Nginx怎样实现负载均衡”这篇文章吧。一、Nginx介绍Nginx是一款高性能的Http和反向...
      99+
      2023-06-29
    • nginx怎么实现负载均衡
      要实现负载均衡,可以通过Nginx的反向代理和负载均衡模块来完成。以下是一种常见的配置方法:1. 安装Nginx:首先需要安装Ngi...
      99+
      2023-09-02
      nginx 负载均衡
    • nginx如何实现负载均衡
      Nginx可以通过以下几种方式实现负载均衡:1. 轮询(Round Robin):Nginx默认使用轮询算法,将请求依次分配给不同的...
      99+
      2023-09-02
      nginx 负载均衡
    • Ubuntu下怎么实现Nginx负载均衡
      本篇内容主要讲解“Ubuntu下怎么实现Nginx负载均衡”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Ubuntu下怎么实现Nginx负载均衡”吧!企业在解决高并发问题时,一般有两个方向的处理...
      99+
      2023-06-27
    • nginx反向负载均衡怎么实现
      要实现nginx的反向负载均衡,可以按照以下步骤进行操作:1. 安装nginx:首先需要在服务器上安装nginx,具体安装步骤可以参...
      99+
      2023-09-01
      nginx 负载均衡
    • Nginx负载均衡原理与实现
      引言:随着网站访问量的不断增加,服务器的负载压力也越来越大。为了解决这个问题,负载均衡应运而生。Nginx作为一款高性能的开源反向代理服务器,被广泛应用于负载均衡的场景中。本文将介绍Nginx负载均衡的原理和实现方法,并附上具体的代码示例。...
      99+
      2023-10-21
      nginx 实现 负载均衡
    • IIS下的负载均衡与IIS+Nginx实现负载均衡、反向代理
      在IIS下实现负载均衡可以使用Microsoft提供的Application Request Routing(ARR)模块。ARR可...
      99+
      2023-09-01
      IIS
    • nginx怎么做负载均衡
      nginx可以通过以下几种方式实现负载均衡:1. 基于IP Hash算法:根据客户端的IP地址将请求分配到特定的服务器上,可以保证同...
      99+
      2023-09-07
      nginx 负载均衡
    • Nginx实现负载均衡的项目实践
      目录一、Nginx介绍二、Nginx特点三、Nginx负载均衡3.1 认识 upstream 模块3.2 Nginx负载均衡策略3.3 Nginx负载均衡实例总结一、Nginx介绍 ...
      99+
      2024-04-02
    • 怎么配置Nginx负载均衡
      本篇内容主要讲解“怎么配置Nginx负载均衡”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么配置Nginx负载均衡”吧!user nobody;&n...
      99+
      2024-04-02
    • 怎么使用Docker和Nginx实现负载均衡
      要使用Docker和Nginx实现负载均衡,可以按照以下步骤操作: 在Docker中创建多个应用实例,每个实例都运行相同的应用程...
      99+
      2024-04-19
      Docker Nginx
    • nginx负载均衡怎么部署
      要部署Nginx负载均衡,可以按照以下步骤进行操作:1. 安装Nginx:在服务器上安装Nginx,你可以通过源代码编译安装或使用适...
      99+
      2023-09-04
      nginx
    • nginx怎么配置负载均衡
      要配置Nginx的负载均衡,可以按照以下步骤进行操作:1. 安装Nginx:首先确保已经安装了Nginx,可以通过apt-get或者...
      99+
      2023-09-07
      负载均衡 nginx
    • nginx负载均衡动静分离怎么实现
      要实现nginx的负载均衡和动静分离,可以按照以下步骤操作:1. 安装和配置nginx:首先,确保已在服务器上安装了nginx,然后...
      99+
      2023-09-07
      负载均衡 nginx
    • nginx负载均衡怎么配置
      这篇文章主要介绍“nginx负载均衡怎么配置”,在日常操作中,相信很多人在nginx负载均衡怎么配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”nginx负载均衡怎么配置”的疑惑有所帮助!接下来,请跟着小编...
      99+
      2023-06-27
    • 如何使用Nginx+Tomcat实现负载均衡
      这篇“如何使用Nginx+Tomcat实现负载均衡”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用Nginx+Tomc...
      99+
      2023-06-30
    • Nginx负载均衡原则与实践
      引言:负载均衡是一个重要的概念,在现代网络中起着至关重要的作用,它可以确保网站或应用程序能够处理大量并发请求并提供高可用性。Nginx是一个流行的开源软件,以其出色的负载均衡能力而闻名。在本文中,我们将探讨Nginx负载均衡的概念、原则以及...
      99+
      2023-10-21
      实践 nginx 负载均衡
    • Nginx负载均衡的配置
      这篇文章主要讲解了“Nginx负载均衡的配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nginx负载均衡的配置”吧!1.简单了解Nginx负载均衡【lo...
      99+
      2024-04-02
    • nginx负载均衡的策略
      本文同步发布于 http://laowubiji.com/index.php/2023/02/01/nginx_config/ nginx的负载均衡策略有六种: 1、轮询(默认策略,nginx自带策略):我上面的例子就是轮询的方式,它是...
      99+
      2023-09-02
      nginx 负载均衡 服务器 Powered by 金山文档
    • JavaWeb 使用nginx负载均衡
      要使用nginx负载均衡JavaWeb应用程序,可以按照以下步骤进行操作:1. 安装和配置nginx:首先,需要在服务器上安装ngi...
      99+
      2023-09-21
      JavaWeb
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作