就改了一行nginx配置,老站ip从500飙到2万
半夜两点,我盯着监控屏幕,困得眼皮打架。网站那个cms跑了好几年了,日ip一直在500左右晃荡。老板天天催,我也懒得解释,反正就是那样。
说实话,那晚我本来只想修个bug。用户登录后偶尔会白屏,我以为是php内存不够,调到512M了还是没卵用。折腾了一宿,翻遍了error_log,就一个502 Bad Gateway反复出现,没其他线索。
后来上服务器排查,nginx的配置文件在/etc/nginx/conf.d/yourdomain.conf,看了下,location那块写的是fastcgi_pass 127.0.0.1:9000;。这个没问题,但往上翻,发现一个奇怪的地方:include里面有个fastcgi_params,可是里面有个变量SCRIPT_FILENAME指向的是$document_root$fastcgi_script_name;。正常。不对劲。
讲真,问题出在另一个地方。我同事之前加过一段防cc配置,limit_req_zone设置得极其严苛。rate=2r/s,burst=5。说白了,一个ip两秒请求超过5次直接503。这在搜索引擎蜘蛛看来就是服务器挂了。老站收录掉得厉害。

我把那几行注释掉,换成合理的burst参数。重启nginx。nginx -s reload下去。好家伙,第二天蜘蛛跟疯了一样来爬。第三天我看流量统计,直接飙到2万,我一算,涨了40倍。原来被那个规则给活活卡住了。老板以为我做了多大优化,其实我就改了一行。
还有个小细节,那会儿数据库用的是myisam,锁表严重,我把索引相关的几个表引擎换成innodb,数据库配置文件在/etc/mysql/my.cnf,加了一行innodb_buffer_pool_size=2G。这个改动对我来说顺手,效果挺明显,页面加载从3秒多降到800ms以内。
总结我的体会:不要瞎鸡巴优化,先把基础配置搞对。很多老站根本没那么大流量,全是自己上规矩把自己玩死的。
就这样吧,现在流量稳定在1.8万左右。那我没再动过配置。写着玩,仅供参考。
- 上一篇: 别信那些优化推广的鬼话,我刚踩完坑
- 下一篇: 没有了











鄂公网安备42011602001234号