商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何用Nginx限制访问频率

如何用Nginx限制访问频率

  发布于2026-07-13 阅读(0)

扫一扫,手机访问

很多时候,网站上线之后会遇到一些“不速之客”——恶意爬虫、暴力破解脚本,或者单纯就是某个用户刷得太猛,把服务器压垮了。这时候,Nginx自带的访问频率限制功能就能派上用场。它通过ngx_http_limit_req_module模块,帮你给每个请求“踩一脚刹车”,让服务器喘得过气来。

直接上配置,看看怎么弄。

如何用Nginx限制访问频率

  1. 首先,确保Nginx已经装好(没装的执行下面命令):

    sudo apt update
    sudo apt install nginx
  2. 编辑配置文件。通常主配置文件在/etc/nginx/nginx.conf,但你也可以在具体的虚拟主机配置文件里改,看习惯。

  3. 关键配置来了——在httpserverlocation块中加入以下内容:

    http {
        # 定义一个共享内存区域来存储请求计数器
        limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
    
        server {
            listen 80;
            server_name example.com;
    
            location / {
                # 应用访问频率限制
                limit_req zone=mylimit burst=5 nodelay;
    
                # 其他配置...
                root /var/www/html;
                index index.html index.htm;
            }
        }
    }

    这里简单拆解一下参数的作用:

    • limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
      意思是用客户端的IP地址作为标识,开一块10MB的共享内存来记录请求次数,每秒只允许1个请求。当然,你可以根据自己网站的访问量调整这个速率。
    • limit_req zone=mylimit burst=5 nodelay;
      burst=5 允许在瞬间有最多5个请求的“爆发”,而不被立刻拒掉;nodelay 则让这些突发请求不排队等待,直接响应。如果不想让突发请求影响体验,可以去掉nodelay
  4. 改完配置后,别忘重新加载让配置生效:

    sudo nginx -s reload

这样一套下来,访问频率限制就跑起来了。实际使用中,rateburst 的值需要根据业务场景反复试——比如API接口可以松一点,登录页面就得严一点。总之,核心思路就是:给服务器一个“呼吸”的节奏,别让流量冲垮。

本文转载于:https://www.yisu.com/ask/10005098.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注