Nginx反向代理后端多节点下故障节点的排除思路

仔细想来,其实是个非常简单的问题;开发和运维觉得两个后端节点跑起来压力太大了,就扩充了两个新的后端节点上去,这一加就出问题了,访问时页面间歇性丢失,这尼玛什么情况...想了半天没思路,查了Nginx的配置,没发现问题,查询后端的错误日志,也是一头雾水。

先贴出代理服务器的配置(upstream部分):

upstream api {
        server 192.168.1.10:9109;
        server 192.168.1.11:9109;
        server 192.168.1.12:9109;
        server 192.168.1.13:9109;
     }

其中1.12和1.13两个节点是新加上去的,考虑到这样配置的nginx代理是默认的轮询访问,干脆用有故障的服务器的故障日志去筛选,看别的节点上是否有相同的日志,依次查询完下来,发现只有12节点上有错误日志,这就很清晰了,是这个节点故障导致的访问页面时间歇性歇菜,干脆先把这个节点踢出去吧。

修改完代理的配置,重启了nginx服务,终于好了,明天检查这个节点上的服务,看什么情况造成的节点访问异常。

总结:如果今后出现类似的比如nginx、lvs等负载均衡的时候,可以考虑查看节点的办法去判断哪个节点出问题了,比如错误日志;也可以直接使用url访问测试,看究竟是否可用。这次故障,忘记直接使用url访问测试故障了,真是事多丢脑子!

原文地址:https://www.cnblogs.com/tchroot/p/9452398.html

时间: 2024-10-01 06:20:50

Nginx反向代理后端多节点下故障节点的排除思路的相关文章

nginx反向代理后端IIS持续报错504

故障:使用nginx反向代理后端的IIS服务器出现报错504 gateway time-out 在网上查找修改buffer等内容无法解决 在nginx的配置文件中 event{ accept_mutex off; } 问题解决

分析shell实现nginx反向代理后端realserver健康检查

今天阅读老男孩教育博客http://oldboy.blog.51cto.com/ 中一篇关于shell实现nginx反向代理后端realserver健康检查的文章,根据其中一个学员朋友的思路自己写了一个脚本. 一.nginx.conf部分内容如下:     upstream rs_pools {     server 10.0.0.8:80 weight=5;     server 10.0.0.9:80 weight=5;     server 10.0.0.10:80 weight=5;  

nginx反向代理-后端服务器组设置

nginx服务器的反向代理时其最常用的重要功能之一,在实际工作中应用广泛,涉及的配置指令也比较多.下面会尽量详细地介绍对应的指令,及其使用状态. 反向代理一般是互联网需要向内网拉取资源,比如访问一个web网站时,互联网应用通过一个代理服务器到后面真实的web服务器拉取应用所需的数据. nginx服务器反向代理用到的指令如果没有特别的说明,原则上可以出现在nginx配置文件的http块,server块和location块中,但是同正向代理一样,一般是搭建在nginx服务器中单独配置一个server

Nginx反向代理后端多个Tomcat、Nginx+PHP服务器(Nginx的代理和负载功能)

需求分析: 现有3个二级域名,一个IP地址,要实现将这3个域名通过1个IP地址对外提供web服务,可使用IP+端口的方式对域名进行解析,且互不影响.如: Domain1:www.huangming.org     IPADDR:192.168.1.33:80 Domain2:web1.huangming.org    IPADDR:192.168.1.33:8080 Domain3:web2.huangming.org    IPADDR:192.168.1.33:8080 其中Domain1作

nginx 反向代理 后端 499 错误

499错误是什么 ngx_string(ngx_http_error_495_page), /* 495, https certificate error */ ngx_string(ngx_http_error_496_page), /* 496, https no certificate */ ngx_string(ngx_http_error_497_page), /* 497, http to https */ ngx_string(ngx_http_error_404_page), /

nginx反向代理后端web服务器记录客户端ip地址

nginx在做反向代理的时候,后端的nginx web服务器log中记录的地址都是反向代理服务器的地址,无法查看客户端访问的真实ip. 在反向代理服务器的nginx.conf配置文件中进行配置. location /bbs { proxy_pass http://192.168.214.131/bbs; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarde

nginx反向代理 后端apache获取真实ip方式

系统环境为 centos6.4 64位 nginx配置: 在server中加入 - proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; - 后端apache为yum安装方式: 在网上查找apache需要第三方的模块来获取真实的客户ip 网上给的下载地址用不了只能另辟新径 安装rpaf 我是rpm安装的 别的方式可以自行查找 方法如下 rpm -ivh ftp://ftp.pbone.net/mir

nginx反向代理tomcat集群达到负载均衡,同时使用proxy_cache做web缓存

Nginx最早是作为一款优秀的反向代理软件,以高并发下的卓越性能被越来越多的用户所用户,国内最早研究nginx的是张宴,该大牛的博客地址:http://zyan.cc/ .但是随着需求的发展,nginx的功能已经不再单单是反向代理,现在已经更倾向作为web容器. Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对

[nginx]Windows和Mac下,nginx反向代理服务器配置

最近做项目,前端需要用到nginx反向代理来转发请求,总结了一下在Windows和Mac上的配置,以备查询. 一.Windows 修改nginx的配置文件,nginx.conf. 1)nginx.conf文件,http下,默认打开的server只有一个,监听的是80端口: 1 http{ 2 XXXXX 3 server{ 4 listen 80; 5 XXXX 6 } 7 } 2)我们手动添加一个server(虚拟机),这样本地使用假数据来模拟请求json文件时,不会因为跨域而请求不到. 1