Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7460040
  • 博文数量: 1760
  • 博客积分: 18684
  • 博客等级: 上将
  • 技术积分: 16267
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-02 10:28
个人简介

啥也没写

文章分类

全部博文(1760)

文章存档

2024年(6)

2023年(44)

2022年(39)

2021年(46)

2020年(43)

2019年(27)

2018年(44)

2017年(50)

2016年(47)

2015年(15)

2014年(21)

2013年(43)

2012年(143)

2011年(228)

2010年(263)

2009年(384)

2008年(246)

2007年(30)

2006年(38)

2005年(2)

2004年(1)

分类: LINUX

2009-08-06 09:28:51

nginx的负载能力超强,一般小的ddos是无法击垮一台nginx代理的,所以用nginx来过滤掉一些小型的ddos是完全没有问题。
早上同事负责的一台服务器当机,重起之后又挂掉,他检查过后发现是有一个链接的访问量很大。
我去看了一下,因为这个项目不是公司的项目,所以应用服务器是Windows+IIS,架构采用的是app_squid架构。因为那个访问量大的链接业务上必须加上no-cache头,所以全部透入后台应用服务器,应用服务器招架不住所以频频出问题。
我对IIS根本不熟,况且那台应用服务器已经基本没法正常服务,所以我就在cache上把受攻击的域名指向中层代理,中层代理再转发到应用服务器。这样架构变成了app_nginx_squid架构,然后我就好正常地开始分析。
整理思路,然后按部就班:
先打开日志,看看到底是怎么回事,看过之后发现确实是有一个链接访问量很大,用命令行统计一下,发现这个链接是正常的所有访问请求100倍之多。由上可知,确实就是这个链接访问量超大引起问题,但是这些访问量是不是正常的呢?从它的ip看,并不是同一个ip,这就比较难判断了,如果确实是真实流量,我把它毙掉,那就会有人要追杀我了。
具体原因的干脆先不查,我把它的no-cache头先干掉好了,这样至少不会死机。作为维护人员,那肯定先要想办法让网站正常服务,然后才能去找原因的。
proxy_hide_header Cache-Control;
嗯,这下这个链接就缓存到前端squid了,应用服务器不会死机了,不过这只是临时方法,不是长久之计,因为这样做影响了业务功能。
所以继续分析日志,多加了几项参数到日志中,这时看到这些大量的请求有一个共同点,那就是user-agent都是一样的,都是MSIE 5.01,而IE5并不是主流浏览器。这样看来,这些请求都是同一个客户端恶意发起的,不知道是用了什么垃圾软件。
找到了原因和特征,当然就可以配置把它干掉了,判断一下user-agent,如果是MSIE 5.01就把它丢到另外一个地方去就可以了,比如指向sudone.com,看看能不能抗得住?!
location = /v2/index.php {
include proxy.conf;
if ( $http_user_agent ~* "MSIE 5.01" ) {
proxy_pass ;
#access_log /home/logs/1.log main;
}
proxy_pass ;
}
最后开回Cache-Control,访问一下页面,嗯,这回一切正常,业务也没有被修改。
阅读(655) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~