一、实验目的
在nginx负载均衡中,我们使用upstream指令来实现,但是默认upstream中的server宕机的话,其实还是会把请求转给宕机的服务器,即不会及时剔除宕机的服务器。
换一种描述
如果后端节点服务器宕掉的话,nginx默认是不能把这台realserver踢出upstream负载集群的,所以还会有请求转发到后端的这台realserver上面,这样势必造成网站访问故障。
二、验证默认机制
我们来验证上述情况的存在。
在虚拟机上安装一个nginx(安装步骤略),安装两个apache。
快速的话,个人推荐使用docker安装,这个非常方便。
docker pull httpd
docker run --name=httpd1 -p 8000:80 -d httpd
docker run --name=httpd2 -p 8001:80 -d httpd
为了看出效果,修改首页文字,默认It works,进入容器进行修改
docker exec -it 容器id /bin/bash
我的是centos7,容器里面没有vi命令,可以使用
apt-get update
apt-get install -y vim
修改好首页,重启两个apache容器,并内部测试下访问
编写nginx 负载均衡配置
浏览器测试,或者curl本机测试,可以看到默认的轮询访问。