惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
罗磊的独立博客
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
月光博客
月光博客
博客园_首页
博客园 - 叶小钗
T
Tailwind CSS Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
量子位
小众软件
小众软件
爱范儿
爱范儿
The GitHub Blog
The GitHub Blog
IT之家
IT之家
Jina AI
Jina AI
阮一峰的网络日志
阮一峰的网络日志
G
Google Developers Blog
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
J
Java Code Geeks
云风的 BLOG
云风的 BLOG
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

大葱博客

WordPress 解决国内 Gravatar 头像被墙无法显示问题,另附 Gravatar 头像国内镜像源地址大全 宝塔搭建Chatgpt微信机器人 - 大葱博客 微信支付商户V3证书生成方式 - 大葱博客 iPhone苹果ios微信分身多开操作教程 - 大葱博客 WordPress 优化加载速度方法 - 大葱博客 罗永浩直播带货糊了,你的机会才算来了! - 大葱博客 罗永浩直播翻车,赚大钱盆满钵满 - 大葱博客 如何解决Mac OS 10.13系统待机掉电多、能耗高问题? - 大葱博客 ofo退押金排队超千万人,这次还能活下去吗? - 大葱博客
Nginx服务器CPU负载高的排查及解决方法 - 大葱博客
大葱 · 2022-04-24 · via 大葱博客

工作使我快乐,这句话说出来我自己都不信,工作中总会有解决不完的问题,往往前一个Bug解决了,后一个Bug就接踵而来,我们不是在解决Bug,就是在解决Bug的路上。但是,也正因为这种不断的解决问题,不断的突破,才对这份工作有了乐趣,并为之努力。
其实对于每一个项目来说,她就像是我们的“孩子”一样,总想让他变得好一点,再好一点…

背景

为了杜绝不良网名对我们的服务器IP进行直接访问,我在nginx配置那里做了一些“小小的”调整,如下:

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name _;

rewrite ^(.*)https://zzzdc.com permanent;
}

大家估计也看出来了,就是我想让不明地址、IP访问都跳转到我们主站上。

表现

重启nginx服务后,我们服务器上所有存在的网站访问就出问题了。具体表现为:只要访问任何一个存放在服务器上的网站,服务器的CPU立马高负载(15~20%),导致再次访问时会进入一直pedding状态。
这可不行啊,要知道我们所有的网站都是在百度上投放信息流广告的,一旦网站出现问题,百度就会据登广告,这将会给广告商带来大大的损失,于是我放下了手头的工作,马上进行了排查。

过程

首先,我以为是近期更新网站时代码里某一处出了错误,于是我关掉了进行更新过的插件,然而,问题依旧存在;
然后,不是代码的问题,那可能是php-fpm进程太多导致的?查看了一下php-fpm的错误日志,都是一些Notice,并没有Erroor,所以这里也可以排除掉;
那么,再就是用户量太大?看一下Zabbix监控吧,发现CPU负载从早上10.30开始一直高负荷;那再看一下网站流量吧,从前一天晚上11点开始后就有大量的流量进来,也就是用户量激增到平时的十多倍。
昨晚11点干啥了?就是改nginx的配置了啊,那改了哪一处呢?病原在这儿:

rewrite ^(.*)https://zzzdc.com permanent;

我理解的是他把无效域名和IP都转发到了我们的主战,从而引来了大量的不速之客(大流量),占完了CPU资源,导致后面进来的用户就会pedding状态,把这里改一下:

server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name _;

return 444
}

总结

工作使我快乐,善待每一次线上版本的修改及理清处理问题的排查思路,今天就到这儿了。