nginx负载均衡配置,宕机自动切换方式

 更新时间:2020年05月13日 14:16:12   作者:阿肯那顿  
这篇文章主要介绍了nginx负载均衡配置,宕机自动切换方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

严格来说,nginx自带是没有针对负载均衡后端节点的健康检查的,但是可以通过默认自带的ngx_http_proxy_module模块和ngx_http_upstream_module模块中的相关指令来完成当后端节点出现故障时,自动切换到健康节点来提供访问。

下面列出这两个模块中相关的指令:

语法: proxy_connect_timeout time;

默认值: proxy_connect_timeout 60s;

设置与后端服务器建立连接的超时时间。应该注意这个超时一般不可能大于75秒。

语法: proxy_read_timeout time;

默认值: proxy_read_timeout 60s;

定义从后端服务器读取响应的超时。此超时是指相邻两次读操作之间的最长时间间隔,而不是整个响应传输完成的最长时间。如果后端服务器在超时时间段内没有传输任何数据,连接将被关闭。

利用nginx_upstream_check_module模块对后端节点做健康检查

这个就是淘宝技术团队开发的nginx模块。大家可以访问淘宝tengine的官网http://tengine.taobao.org来获取该版本的nginx。

在nginx.conf配置文件里面的upstream加入健康检查,如下:

upstream name {
  server 192.168.0.21:80;
  server 192.168.0.22:80;
  check interval=3000 rise=2 fall=5 timeout=1000 type=http;
}

上面配置的意思是,对name这个负载均衡条目中的所有节点,每个3秒检测一次,请求2次正常则标记

realserver状态为up,如果检测 5 次都失败,则标记 realserver的状态为down,超时时间为1秒。

这里列出nginx_upstream_check_module模块所支持的指令意思:

Syntax: check interval=milliseconds [fall=count] [rise=count] [timeout=milliseconds] [default_down=true|false] [type=tcp|http|ssl_hello|mysql|ajp] [port=check_port]

Default: 如果没有配置参数,默认值是:

interval=30000 fall=5 rise=2 timeout=1000 default_down=true type=tcp

Context: upstream

该指令可以打开后端服务器的健康检查功能。

指令后面的参数意义是:

interval:向后端发送的健康检查包的间隔。

fall(fall_count): 如果连续失败次数达到fall_count,服务器就被认为是down。

rise(rise_count): 如果连续成功次数达到rise_count,服务器就被认为是up。

timeout: 后端健康请求的超时时间。

default_down: 设定初始时服务器的状态,如果是true,就说明默认是down的,如果是false,就是up的。默认值是true,也就是一开始服务器认为是不可用,要等健康检查包达到一定成功次数以后才会被认为是健康的。

type:健康检查包的类型,现在支持以下多种类型

tcp:简单的tcp连接,如果连接成功,就说明后端正常。

ssl_hello:发送一个初始的SSL hello包并接受服务器的SSL hello包。

http:发送HTTP请求,通过后端的回复包的状态来判断后端是否存活。

mysql: 向mysql服务器连接,通过接收服务器的greeting包来判断后端是否存活。

ajp:向后端发送AJP协议的Cping包,通过接收Cpong包来判断后端是否存活。

port: 指定后端服务器的检查端口。

你可以指定不同于真实服务的后端服务器的端口,比如后端提供的是443端口的应用,你可以去检查80端口的状态来判断后端健康状况。

默认是0,表示跟后端server提供真实服务的端口一样。

该选项出现于Tengine-1.4.0。

补充知识:nginx超时自动重发

1、现象:

使用nginx做负载后,如果url响应超过一定时间(一般是10分钟)后,请求会自动重发到另一台机器;

2、原因:

在nignxi中,超时自动重发,默认是开启的,需要关闭配置。

3、解决方案:

nginx中增加配置:

proxy_next_upstream off;

以上这篇nginx负载均衡配置,宕机自动切换方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Nginx中配置过滤爬虫的User-Agent的简单方法

    Nginx中配置过滤爬虫的User-Agent的简单方法

    这篇文章主要介绍了Nginx中配置过滤爬虫的User-Agent的简单方法,文中罗列了一些常用搜索引擎的爬虫名称以免造成不必要的过滤,需要的朋友可以参考下
    2016-01-01
  • Nginx 服务器重启关闭重新加载命令

    Nginx 服务器重启关闭重新加载命令

    这篇文章主要介绍了Nginx 服务器重启关闭重新加载命令,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • nginx和Apache配置SSL证书的实现步骤

    nginx和Apache配置SSL证书的实现步骤

    SSL证书是一种数字证书,用于加密在网络上发送的数据并保护敏感信息的安全性,本文主要介绍了nginx和Apache配置SSL证书的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • nginx 开启 pathinfo的过程详解

    nginx 开启 pathinfo的过程详解

    这篇文章主要介绍了nginx 开启 pathinfo的过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Nginx日志中request_time和upstream_response_time区别

    Nginx日志中request_time和upstream_response_time区别

    Nginx日志中的request_time和upstream_response_time是关键的性能指标,本文就来介绍一下Nginx日志中request_time和upstream_response_time区别,具有一定的参考价值,感兴趣的可以了解一下
    2024-11-11
  • 详解Nginx反向代理WebSocket响应403的解决办法

    详解Nginx反向代理WebSocket响应403的解决办法

    本篇文章主要介绍了详解Nginx反向代理WebSocket响应403的解决办法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Nginx+Windows负载均衡配置方法

    Nginx+Windows负载均衡配置方法

    Nginx负载均衡如何才能实现呢?这个问题有很多的程序员都希望知道,下面我们就向大家详细的介绍有关Nginx负载均衡的信息
    2012-11-11
  • 详解Nginx虚拟主机配置中server_name的具体写法

    详解Nginx虚拟主机配置中server_name的具体写法

    这篇文章主要介绍了Nginx虚拟主机配置中server_name的具体写法,server_name服务器名是虚拟主机中必须配置的重要参数,需要的朋友可以参考下
    2016-03-03
  • nginx proxy_redirect https配置后端http302跳转处理方式

    nginx proxy_redirect https配置后端http302跳转处理方式

    这篇文章主要介绍了nginx proxy_redirect https配置后端http302跳转处理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 详解Prometheus 抓取 nginx 访问日志的指标

    详解Prometheus 抓取 nginx 访问日志的指标

    通过结合NGINX Exporter, Fluentd, Prometheus和Grafana, 可有效监控并可视化NGINX中的4xx和5xx状态码日志,首先使用Fluentd收集和解析NGINX日志,再通过Prometheus抓取Fluentd暴露的指标,本文介绍Prometheus抓取nginx访问日志的指标,感兴趣的朋友一起看看吧
    2024-10-10

最新评论