nginx负载均衡器--健康检测 | 实现客户端真实地址功能

目录

nginx参考网站:Using nginx as HTTP load balancer

一、什么是健康检查?

二、如何实现nginx负载均衡的主动检测呢?

步骤:

1、安装nginx plus软件

2、使用nginx plus自带的 Active Health Checks 主动健康检查

三、如何实现nginx负载均衡的被动检查呢?

1、什么是被动检测,被动检测的步骤是什么?

​编辑

2、nginx配置文件中添加配置参数的解释 :

四、实现客户端真实地址功能,如何告诉我们的 Web服务器 到底是哪个Client客户端访问了它?

为什么我们的Web服务器不知道我们的Client用户端的IP地址呢?

步骤规划图:

步骤:

1、在负载均衡器LB上修改HTTP请求报文头部字段,添加一个X-Real-IP字段

2、在后端real server(Web服务器)上添加这个X-Real-IP字段

3、刷新用户的浏览器,查看后端Web服务器是否运行正常,如果正常,则到Web服务器上对访问日志进行动态观察,检查是否存在包含着用户机IP地址的日志出现


nginx参考网站:Using nginx as HTTP load balancer

一、什么是健康检查?

nginx中的反向代理实现包括主动(或被动)服务器健康检查。如果来自特定服务器的响应失败并出现错误,nginx将把该服务器标记为失败,并在一段时间内尽量避免为后续入站请求选择该服务器。

max_fails指令设置在fail_timeout期间与服务器通信的连续失败次数。缺省情况下,max_fails值为1。当该值设置为0时,将禁用此服务器的健康检查。fail_timeout参数还定义了服务器被标记为失败的时间。在服务器故障后的fail_timeout时间间隔后,nginx将开始优雅地探测服务器的活动客户端请求。如果探测成功,则该服务器将被标记为活动服务器。

二、如何实现nginx负载均衡的主动检测呢?

(主动检测需要购买nginx plus软件。)

步骤:

1、安装nginx plus软件

nginx plus : 是nginx的一个插件,nginx额外提供的一个软件,这个软件是需要付费购买的,但是这个软件的功能比较好,很实用。

网址:Configuring NGINX & NGINX Plus as Load Balancers

 我们可以免费试用30天的时间,需要填写下面的信息

2、使用nginx plus自带的 Active Health Checks 主动健康检查

LB每隔一段时间就会去检测下后端的real server的状态,不管是否由client发送请求过来,都会去检查

配置方法:

三、如何实现nginx负载均衡的被动检查呢?

(不需要用钱,可以在开源的nginx上实现)

1、什么是被动检测,被动检测的步骤是什么?

被动检测步骤:user --》请求 --》 LB负载均衡 --》 转发请求 --》real server(Web)

2、nginx配置文件中添加配置参数的解释 :

 配置如下图所示:

 

四、实现客户端真实地址功能,如何告诉我们的 Web服务器 到底是哪个Client客户端访问了它?

为什么我们的Web服务器不知道我们的Client用户端的IP地址呢?

因为在数据包在经过LB负载均衡器的时候,负载均衡器对数据包进行了NAT网络地址转换,将数据包中的TCP/IP协议头部字段中的源IP地址转换为了自己的IP地址,目的IP地址转换为了需要访问的Web服务器的IP地址,从而导致我们的Web服务器不知道到底是哪个Client访问了它,只知道LB负载均衡器的IP地址。

因此我们不能通过网络层、传输层(TCP/IP协议)告知我们的Web服务器到底是谁访问了它,但是我们可以通过 应用层 的HTTP协议请求包携带Client客户端的IP地址发送给Web服务器,然后我们可以通过后端去查看Web服务器接收到的HTTP协议请求包从而得到Client客户端的IP地址。

步骤规划图:

步骤:

1、在负载均衡器LB上修改HTTP请求报文头部字段,添加一个X-Real-IP字段

在nginx负载均衡器的配置文件的http协议中修改如下:

解释:

 

2、在后端real server(Web服务器)上添加这个X-Real-IP字段

因此我们需要对三台nginx-Web服务器进行添加

(详细请查看:(37条消息) nginx负载均衡器的部署_Claylpf的博客-CSDN博客

我以其中一台为例:

在nginx-Web3服务器的配置文件中的http协议头部log_format 里面添加 “$http-x-real-ip”

完整添加图:

完成后保存,刷新nginx服务(./nginx -s reload)一定要哦!!

当然我们也可以不用在nginx-Web服务器里配置上面的$http-x-real-ip,但是我们需要:

 

3、刷新用户的浏览器,查看后端Web服务器是否运行正常,如果正常,则到Web服务器上对访问日志进行动态观察,检查是否存在包含着用户机IP地址的日志出现

动态查看nginx-Web3的访问日志: 

  日志中出现了客户端的IP地址,说明完成客户端真实地址的配置了 。

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值