nginx 负载均衡加权轮询实例

下面通过实例演示 Nginx 负载均衡加权轮询(Weighted Round Robin)策略配置,以及某台服务宕机后,Nignx 自动切换机制。

Nginx 中的加权轮询(Weighted Round Robin)负载均衡是一种负载均衡算法,用于将请求分发到后端服务器。在这种负载均衡算法中,每个后端服务器都被分配一个权重值,该值决定了服务器被选中处理请求的概率。权重值越高的服务器,被选中的概率就越大。

准备工作

我们将在本机通过 IIS 服务器搭建两个 web 应用,端口分别为,如下图:

nginx 负载均衡(轮询)

然后通过浏览器访问 http://localhost:1081 服务,如下图:

nginx 负载均衡(轮询)

上图中,左边标题为 1081,这是为了区别两个服务有意为之。

继续访问 http://localhost:1082 服务,如下图:

nginx 负载均衡(轮询)

Nginx 配置

Nginx 中加权轮询(Weighted Round Robin)负载均衡Nginx会根据权重分配请求,用于实现不同性能服务器的负载均衡。简单配置如下:

# 配置工作进程数量
worker_processes  1;

events {
    # 设置工作进程可以同时打开的最大连接数
    worker_connections  1024;
}

http {
    # 引用 MIME 类型
    include       mime.types;
    default_type  application/octet-stream;

    # 【关键位置】负载均衡配置
    upstream webname {
        server 127.0.0.1:1081 weight=2;
        server 127.0.0.1:1082 weight=1;
    }

    server {
        # 监听 8080 端口
        listen  8080;
        # 设置虚拟服务器的名称
        server_name  localhost;

        location / {
            proxy_pass http://webname/;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host $host;
        }
    }

}

通过命令检测语法是否有问题,如果没有问题,执行命令重新加载配置。然后通过浏览器访问 http://localhost:8080 地址,效果如下图:

nginx 负载均衡加权轮询实例

从上图可知,刷新浏览器会出现 1081、1081 和依次 1082。如果我们将 1081 服务器挡掉,此时会怎么样呢?

(1)进入 IIS 停掉 1081 服务,如下图:

nginx 负载均衡加权轮询实例

(2)刷新浏览器观察效果,如下图:

nginx 负载均衡加权轮询实例

从上图可知,当我们访问到 1081 服务时明显等待了一下,这是 Nginx 在等待服务连接失败,然后重新分配请求。

说说我的看法
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号