下面通过实例演示 Nginx 负载均衡轮询策略的配置,以及某台服务宕机后,Nignx 自动切换机制。
我们将在本机通过 IIS 服务器搭建两个 web 应用,端口分别为和,如下图:
然后通过浏览器访问 http://localhost:1081 服务,如下图:
上图中,左边标题为 1081,这是为了区别两个服务有意为之。
继续访问 http://localhost:1082 服务,如下图:
Nginx 中,轮询(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; server 127.0.0.1:1082; } 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 地址,效果如下图:
上图中,可以看见刷新浏览器,依次 1082、1081、1082、1081……。如果此时,我们将 1081 服务停掉呢,那么会出现什么情况,如下:
(1)先停掉 1081 服务,如下图:
(2)刷新浏览器,访问效果如下图:
从上图效果可知,刷新浏览器,Nginx 将请求全部发送给了 1082 服务。