当前位置:首页 > nginx > 正文

nginx 控制请求次数

  • nginx
  • 2024-05-26 20:13:16
  • 9330

≥▂≤Nginx健康检查(health_check)实践
Nginx作为负责平衡和定向代理的服务器,已经被大量互联网从业者使用。 如图:
使用Nginx的好处是它有自己的健康检查模块:ngx_http_upstream_module,可以进行基本的健康检查。 配置如下:
其中max_fails=1表示设置Nginx尝试与服务器通信失败的次数。 如果在fail_timeout参数定义的时间内失败次数达到该值,Nginx就认为服务器不可用。 在下一个fail_timeout期间,服务器不会重试。 默认情况下,失败尝试次数设置为1。 如果将该值设置为0,将不再计算尝试次数,并且服务器将被视为始终可用。
Fail_timeout=40s设置服务器被视为不可用的时间段以及计算失败尝试次数的时间段。 如果服务器在此期间失败指定的尝试次数,则认为服务器不可用。 默认情况下,此超时时间为10秒。
所以nginx的ngx_http_upstream_module实现了基本的健康检查功能。 这样做的缺点是Nginx被动地执行健康检查。 也就是说,当接收到请求并将该请求发送到服务A时,可以识别服务A的状态。 如果服务A出现异常,就会进行重定向。 并且效率受到影响。 因此,我们需要定期进行主动健康检查,主动ping后端服务列表。 如果发现某个服务出现异常,可以将其恢复并重新添加到健康列表中。 淘宝有开源实现(http://github.com/yaoweibin/nginx_upstream_check_module)。