无涯教程:Nginx - TCP运行状况检查介绍
2021/7/31 8:06:00
本文主要是介绍无涯教程:Nginx - TCP运行状况检查介绍,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Nginx Plus和Nginx可以持续测试我们的TCP upstream服务器,避免出现故障的服务器,并将恢复的服务器正常地包含在负载平衡组中。
让我们看一下TCP健康检查的配置:
1.我们在stream上下文中配置了一组TCP服务器,例如:
stream { #... upstream stream_backend { server backend1.example.com:12345; server backend2.example.com:12345; server backend3.example.com:12345; } #...}
2.我们已经配置了将TCP连接传递到服务器组的服务器:
stream { #... server { listen 12345; proxy_pass stream_backend; } #... }
被动TCP运行状况检查
如果尝试连接到upstream服务器超时或导致错误,则Nginx Plus或Nginx开源可以将服务器标记为不可用,并在规定的时间内停止向其发送请求。要确定nginx认为upstream服务器不可用的条件,请在server指令中添加以下参数:
fail_timeout
max_fails
upstream stream_backend { server backend1.example.com:12345 weight=5; server backend2.example.com:12345 max_fails=2 fail_timeout=30s; server backend3.example.com:12346 max_conns=3; }
服务器缓慢启动
upstream服务器很容易被连接淹没,这可能导致服务器再次标记为不可用。慢速启动允许upstream服务器在恢复或可用后将其权重从零逐渐恢复到其标称值。这可以通过upstream服务器指令的slow_start参数来完成:
upstream backend { server backend1.example.com:12345 slow_start=30s; server backend2.example.com; server 192.0.0.1 backup; }
Active TCP运行检查
可以将运行状况检查配置为测试各种故障类型。例如。 Nginx Plus可以持续检查upstream服务器的响应能力,并避免出现故障的服务器。
Nginx Plus向每个upstream服务器发送特殊的运行状况检查请求,并测试是否满足特定条件。如果无法建立与服务器的连接,则运行状况检查将失败,并且服务器将被视为运行状况不佳。
要启用主动健康检查:
1. 指定共享内存区域 - Nginx Plus辅助进程在其中共享有关连接和计数器的状态信息的特殊区域。将zone指令添加到upstream服务器组,并定义区域(此处为stream_backend)和内存量(64 KB)。
stream { #... upstream stream_backend { zone stream_backend 64k; server backend1.example.com:12345; server backend2.example.com:12345; server backend3.example.com:12345; } #... }
2.使用health_check指令为upstream组启用主动运行状况检查。
stream { #... server { listen 12345; proxy_pass stream_backend; health_check; #... } }
3.如果需要,请使用health_check_timeout指令减少两次连续运行状况检查之间的超时。此health_check_timeout指令会覆盖运行状况检查的proxy_timeout值,对于运行状况检查而言,此超时时间需要大大缩短。
stream { #... server { listen 12345; proxy_pass stream_backend; health_check; health_check_timeout 5s; } }
4.默认情况下,Nginx Plus将运行状况检查消息发送到upstream块中server指令指定的端口。要覆盖端口,请定义health_check指令的port参数。
stream { #... server { listen 12345; proxy_pass stream_backend; health_check port=12346; health_check_timeout 5s; } }
Fine Tuning 运行检查
默认情况下,Nginx Plus尝试每5秒连接到一组upstream服务器中的每台服务器。如果无法建立连接,Nginx Plus会认为运行状况检查失败,将服务器标记为运行状况不佳,并停止将客户端连接转发到服务器。
要更改默认行为,请向health_check指令添加参数:
interval - 它定义Nginx Plus在几秒钟内发送健康检查请求的频率(默认值为5秒)。
passes - 服务器必须响应几次连续的健康检查,才能被视为健康。预设值是1。
fails - 服务器必须连续响应几次健康检查才能被视为不健康。预设值是1。
stream { #... server { listen 12345; proxy_pass stream_backend; health_check interval=10 passes=2 fails=3; } #... }
在上面的示例中,TCP健康检查之间的时间增加到10秒。经过三次连续的健康检查失败后,服务器将被视为不正常,并且服务器需要通过两次连续的检查才能再次被视为健康。
这篇关于无涯教程:Nginx - TCP运行状况检查介绍的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-13用Nginx防范DDoS攻击的那些事儿
- 2024-12-13用Terraform在AWS上搭建简单NGINX服务器指南
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享