技术交流

[运维] Nginx防止DDos&&CC攻击
限制每个IP每秒的连接数


  1. http {

  2.   # 用户ip每秒的连接数

  3.   limit_conn_zone $binary_remote_addr zone=peripconn:1m;

  4.   # 虚拟主机每秒的连接数

  5.   limit_conn_zone $server_name zone=perserverconn:1m;

  6.   

  7.   server {

  8.     limit_conn peripconn 5;

  9.     limit_conn perserverconn 50;

  10.   }

  11. }


限制每个IP每秒的请求数

  1. http {

  2.   # ip每秒请求数

  3.   limit_req_zone $binary_remote_addr zone=peripreq:1m rate=5r/s;

  4.   # 虚拟服务器每秒请求数

  5.   limit_req_zone $server_name zone=perserverreq:1m rate=10r/s;

  6.   

  7.   server {

  8.     # burst为突发请求,最大突发请求为5个 nodelay 即为立即返回503 不缓存

  9.     limit_req zone=peripreq burst=5 nodelay;

  10.     limit_req zone=perserverreq burst=10;

  11.   }

  12. }


后注
经过实际测试,一般的个人用机使用用当前方法阻止DDos和CC攻击的效果有是有,但不是很明显。毕竟服务器光处理垃圾请求就已经满负荷运行了,虽然服务器不至于很容易崩溃,但却会导致超时响应。
个人更加推荐上述方式配合使用cdn实现,一来能隐藏网站ip,二来还能加速网站,一举多得

倒序浏览 看全部 全部回复
暂无回复,快来抢沙发
回复 1收藏