如何限制IP请求数和连接数

资源共享 · 04-12 09:36

网络世界就像繁忙的咖啡店,过多顾客(请求)会让它乱作一团。今天分享一个如何通过限制IP请求数和连接数,让您的网络咖啡店保持秩序,确保每位用户都能享受流畅服务。

最终目的:Nginx上防止DDos和CC攻击

限制每个IP每秒的连接数

http {
  # 用户ip每秒的连接数
  limit_conn_zone $binary_remote_addr zone=peripconn:1m;
  # 虚拟主机每秒的连接数
  limit_conn_zone $server_name zone=perserverconn:1m;
  
  server {
    limit_conn peripconn 5;
    limit_conn perserverconn 50;
  }
}

限制每个IP每秒的请求数

http {
  # ip每秒请求数
  limit_req_zone $binary_remote_addr zone=peripreq:1m rate=5r/s;
  # 虚拟服务器每秒请求数
  limit_req_zone $server_name zone=perserverreq:1m rate=10r/s;
  
  server {
    # burst为突发请求,最大突发请求为5个 nodelay 即为立即返回503 不缓存
    limit_req zone=peripreq burst=5 nodelay;
    limit_req zone=perserverreq burst=10;
  }
}

写在最后

想象一下,如果你的咖啡店(服务器)突然来了很多不买东西只占座的人(垃圾请求),虽然店员(服务器)忙着应付他们不至于让店关门,但真正来买东西的顾客(正常用户)可能就得等好久才能得到服务(超时响应)。

解决这个问题的一个好办法是,在咖啡店外面开一个快闪店(CDN),这样不仅可以隐藏原来店的位置(隐藏网站IP),还能让顾客更快地得到他们想要的咖啡(加速网站访问),真是一举两得。

完!

宝塔面板 优化 Nginx

上一篇 : 搭建一个属于自己的RSS订阅服务

下一篇 : Typecho前台添加编辑文章功能


  1. 哈哈   访客
    05-04 16:06 第5楼 中国江西省南昌市电信Windows 10 · Google Chrome

    大佬,这个代码一般放哪个位置哦

    1. 刘郎   博主
      05-04 16:39 第6楼 中国移动iPhone · Safari
      @哈哈

      Nginx 的主配置文件中(可以参考:/etc/nginx/nginx.conf),或者在 sites-available 目录中的特定于站点的配置文件中

  2. Net   Lv1
    04-12 23:48 第1个脚印 中国河北省邢台市电信iPhone · Google Chrome

    真是救命的东西啊,前两天被打了,不知道怎么办。
    我干脆直接关机了,阿里都发来流量阀值报警信息了。

    1. 刘郎   博主
      04-13 04:31 第2楼 中国移动iPhone · Safari
      @Net

      现在如何呢?

      1. Net   Lv1
        04-13 07:35 第3楼 中国河北省邢台市电信iPhone · Safari
        @刘郎

        昨晚试着复制过去,但是不能保存。
        后来也就没有在捣鼓它了。

        1. 刘郎   博主
          04-13 08:23 第4楼 中国贵州省移动iPhone · Safari
          @Net

          嗯,折腾之前记得备份好数据😂

| 黔ICP备2024020400号-2 | 萌ICP备20246777号 | | 当前有 4 人在线 |
本站已加入BLOGS·CN
订阅
Sitemap
博友圈 星球穿梭
开往-友链接力