CPU疯狂上涨到90%遭到一个叫WinHttp.WinHttpRequest的useragent的频繁骚扰,所以不得不屏蔽这个useragent,nginx屏蔽useragent的配置如下:

        if ($http_user_agent ~* "WinHttp.WinHttpRequest") {
                return 403;
        }

这条语句是根据正则来匹配,如果User Agent匹配上了WinHttp.WinHttpRequest,那么直接返回403,这里的if语句必须放在server或者location范围内,不能放在http范围内。

添加此配置之后,可以通过nginx -t命令先验证一下配置语法是否 有问题,若没有问题,则可以通过nginx -s reload来应用配置。

配置成功之后就可以通过下面的命令来验证配置是否生效了

curl -I -A "WinHttp.WinHttpRequest" www.xxx.com

如果返回下面的输出,则说明配置已经生效了:

HTTP/1.1 403 ForbiddenServer: nginx/1.2.6Date: Sat, 04 May 2013 12:09:32 GMTContent-Type: text/htmlContent-Length: 168Connection: keep-aliveVary: Accept-Encoding