阿毛
It's me !
想你所想
记一次Nginx 50x。。。

先woc在前,真不能随随便便就一顿操作。。。

怎么突然间,我nginx上的站点都访问不通了。。。直接not found。。。

一步步去找问题,服务器没改任何东西的情况下,匪夷所思,因为我的网站服务组件很少。

查看nginx的错误日志,发现了如下两种错误:
1、upstream timed out (110: Connection timed out) while reading response header from upstream
2、upstream prematurely closed connection while reading response header from upstream

找了半天,最终突然想到,连接超时,数据库??查看了mysql的服务状态,failed。。。。

理了可能的原因,应该是这样的一个神奇过程。。。

我一哥们压测了我的站点,因为我通过工具加了安全规则限制,我能看到访问日志,足足上千条来自同一IP的访问记录,我决定防一下这狗东西,于是我点了下工具上的“block ip”,结果就是这个操作,导致上面的问题,因为每条访问记录都包含了这个IP的状态,这些记录数据都是存储在mysql中的,于是改这上千条数据,直接把我的mysql搞挂了,本身资源比较吃紧。

因为我的站点数据都是在mysql中,包含首页,所以浏览器发起访问,由nginx代理,php去请求mysql,下游出现了问题,重试导致链接超时。。。重启mysql,问题解决。

吸取这次经验教训,决定开始着手改变破服务的架构,优化一些配置。。

同时如果发现上述错误,在服务器没有做任何变动的情况下,记得去检查下,下游服务的运行状态。

发表评论

textsms
account_circle
email

想你所想

记一次Nginx 50x。。。
先woc在前,真不能随随便便就一顿操作。。。 怎么突然间,我nginx上的站点都访问不通了。。。直接not found。。。 一步步去找问题,服务器没改任何东西的情况下,匪夷所思,因为我…
扫描二维码继续阅读
2020-04-06