Есть ли какая-либо служба, которую я мог бы использовать, чтобы ограничить пользовательский запрос на флуд

Я использую облачную базу данных, облачность, если быть точным, она может предоставить каждому пользователю доступ к базе данных с хорошей системой авторизации.

Однако это также услуга, которая хорошо масштабируется и учитывает счета по каждому доступу к серверу, 0,0015$ за 500 запросов на получение.

Так что я думал о любом сервисе, который будет работать как прокси или CDN или брандмауэр, который я мог бы ограничить частоту доступа пользователей в минуту

Например, я хотел бы отклонить пользователя, если этот человек делает более 20 запросов в минуту или более 2 запросов в секунду, что-то в этом роде, чтобы я мог защитить какого-то пользователя от попытки отправить запрос в мой сервис

Есть ли такой сервис? Как это называется? И что-нибудь вы можете мне предложить?

большое спасибо

1 ответ

Некоторые CDN, вероятно, предлагают это, но вам придется связаться с их отделами продаж / поддержки или проверить документацию. Однако, если у вас есть доступ к серверу, на котором вы можете установить nginx, у него есть функции ограничения запросов, которые могут делать именно то, что вы хотите.

Он находится в модуле " Limit Req". Некоторые конфигурации, которые могут работать в вашем случае:

http {
    limit_req_zone $binary_remote_addr zone=dbzoneip:10m rate=2r/s;
    # or limit_req_zone $binary_remote_addr zone=dbzoneip:10m rate=20r/m;
    # You can set this up if you want to limit total requests,
    # regardless of the incoming IP
    limit_req_zone $server_name zone=dbzoneserver:10m rate=100r/m;

    # this would be for whatever the path is to the db API
    location /db/ { 
       # now we use it
       # check docs to determine if you want to enable bursting
       # which allows you to buffer a small number of requests
       limit_req zone=dbzoneip; 

       # comment this out if you just want to limit particular users
       limit_req zone=dbzoneserver;

       proxy_pass https://url_or_ip_of_cloudant;
    }
}
Другие вопросы по тегам