Nginx何防止流量攻击,菜鸟IT来教你基本可以无视CC攻击

作者 : 官方 本文共1815个字,预计阅读时间需要5分钟 发布时间: 2019-12-22 共239人阅读

两种实现方式分别是基于Ehcache和Redis的session管理策略

大家都知道服务器资源有限的,但是客户端来的请求是无限的(不排除恶意攻击), 为了保证大部分的请求能够正常响应,不得不放弃一些客户端来的请求,所以我们会采用Nginx限流操作, 这种操作可以很大程度上缓解服务器的压力, 使其他正常的请求能够得到正常响应。

如何使用nginx实现基本的限流,比如单个IP限制每秒访问100次。通过Nginx限流模块,我们可以设置一旦并发连接数超过我们的设置,将返回503错误给客户端。这样可以非常有效的防止cc攻击。再配合 iptables防火墙,基本上CC攻击就可以无视了。

如何使用

conf配置

  1. #统一在http域中进行配置
  2. #限制请求
  3. limit_req_zone $binary_remote_addr $uri zone=api_read:20m rate=100r/s;
  4. #按ip配置一个连接 zone
  5. limit_conn_zone $binary_remote_addr zone=perip_conn:10m;
  6. #按server配置一个连接 zone
  7. limit_conn_zone $server_name zone=perserver_conn:100m;
  8. server {
  9. listen 80;
  10. server_name test.domain.com;
  11. index login.do;
  12. location / {
  13. #请求限流排队通过 burst默认是0
  14. limit_req zone=api_read burst=5;
  15. #连接数限制,每个IP并发请求为2
  16. limit_conn perip_conn 2;
  17. #服务所限制的连接数(即限制了该server并发连接数量)
  18. limit_conn perserver_conn 1000;
  19. #连接限速
  20. limit_rate 100k;
  21. proxy_pass http://test;
  22. }
  23. }
  24. upstream report {
  25. fair;
  26. server 172.16.0.10:8882 weight=1 max_fails=2 fail_timeout=30s;
  27. server 172.16.0.10:8881 weight=1 max_fails=2 fail_timeout=30s;
  28. }

配置503错误

默认情况,超出限制额度,将会报503错误,提示:

  1. 503 Service Temporarily Unavailable
  2. the server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. Sorry for the inconvenience.
  3. Please report this message and include the following information to us.
  4. Thank you very much!

这样显示没毛病,但是不够友好,这里我们自定义503错误。

  1. error_page 500 502 503 504 /50x.html;
  2. location = /50x.html {
  3. root html;#自定义50X错误
  4. }

配置说明

limit_conn_zone

是针对每个IP定义一个存储session状态的容器。这个示例中定义了一个100m的容器,按照32bytes/session,可以处理3200000个session。

limit_rate 300k;

对每个连接限速300k. 注意,这里是对连接限速,而不是对IP限速。如果一个IP允许两个并发连接,那么这个IP就是限速limit_rate×2。

burst=5;

这相当于在检查站req旁边放5个座位。如果某个请求当时超过速度限制被拦了,请他在空座位上坐着,等排队,如果检查站空了,就可以通过。如果连座位都坐满了,那就抱歉了,请求直接退回,客户端得到一个服务器忙的响应。所以说burst跟request_rate一点关系都没有,设成10000,就是1万个请求可以等着排队,而检查站还是1秒钟放行5个请求(龟速)。而且也不能一直排队,所以nginx还设了超时,排队超过一定时间,也是直接退回,返回服务器忙的响应。

以上配置Nginx需要配置以下模块:

ngx_http_limit_conn_module (static)

ngx_http_limit_req_module (static)

执行命令 nginx -V 就可以检查到是否有安装

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"AIQIYIC.CN",如遇到无法解压的请联系管理员!

艾奇资源网 » Nginx何防止流量攻击,菜鸟IT来教你基本可以无视CC攻击

发表评论

售后服务:

  • 售后服务范围 1、商业模板使用范围内问题免费咨询
    2、源码安装、模板安装(一般 ¥50-300)服务答疑仅限SVIP用户
    3、单价超过200元的模板免费一次安装,需提供服务器信息。
    付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
    2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
    3、服务器环境配置(一般 ¥50-300)
    4、网站中毒处理(需额外付费,500元/次/质保三个月)
    售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
    免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: 815176521@qq.com),我们会及时删除,给您带来的不便,我们深表歉意!

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系作者

提供最优质的资源集合

开通VIP 了解详情
开通SVIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡