Ddos 攻击是最常见的web攻击了,原理非常简单,用自己的电脑模拟大量用户发送大量请求,apache 的 ab 压力测试工具就可以做到这一点,如果我这样做,而对方的服务器配置没有我电脑好,那么一会之后,对方的服务器就难以响应其他用户的请求,如果我控制了大量肉鸡并使用这些肉鸡发送请求,结果可想而知。
1.防止恶意请求
我假设你使用 nginx 或者其衍生版,那么,你可以通过简单的几行配置有效防御这种攻击,现在,我们步入正文,首先编辑 nginx.conf 在 http 里面添加下面两行,最终大致如下:
http {
limit_req_zone $binary_remote_addr zone=blog:10m rate=10r/s; limit_conn_zone $binary_remote_addr zone=addr:10m;
}
这里我忽略了其他配置,第一行 limit_req_zone $binary_remote_addr zone=blog:10m rate=10r/s; 这里定义了一个名字为blog的会话区域,速度是10次每秒,你也可以使用600r/m 表示每分钟600次,但是没有每小时的限制哦,只有分钟与秒的限制,且为整数。但仅仅这样配置并不起作用,还需要在location里添加配置,如下:
location / {
limit_conn addr 7; limit_req zone=blog burst=7 nodelay;
}
这里,burst 表示突发之意,