Nginx之limit_req_module和limit_con

2021-09-12  本文已影响0人  跑腿打杂临时工

问题描述

在查询nginx日志时,发现某一个IP有小量的频繁爬数据,对业务和系统性能并没有什么影响,频次在10r/s左右,想着还是应该控制下,找到了nginx下有现成的模块可以使用,经过了解学习了 ngx_http_limit_req_module 和 ngx_http_limit_conn_module 这个两个模块。

ngx_http_limit_req_module 介绍

这个模块的功能主要是限制某个 IP 在指定时间内的请求数。
示例配置模板如下

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

    ...

    server {

        ...

        location /search/ {
            limit_req zone=one burst=5;
        }

示意为每秒不超过1个请求,突发不超过5个请求。

ngx_http_limit_conn_module 介绍

这个模块的功能主要是限制某个 IP 在指定时间内的连接数。
示例配置模板如下

http {
    limit_conn_zone $binary_remote_addr zone=addr:10m;

    ...

    server {

        ...

        location /download/ {
            limit_conn addr 1;
        }

示意为1个并发连接数。

上一篇下一篇

猜你喜欢

热点阅读