是否有任何服务可用于限制用户洪水请求到我的服务器

时间:2016-08-01 12:04:47

标签: security proxy cdn flooding

我正在使用云数据库服务,cloudant具体,它可以让每个用户通过一个好的授权系统直接访问数据库

然而,它也是一种可以很好地扩展并通过每次访问服务器来计算计费的服务,每500个请求获得0.0015 $

所以我在考虑任何会像代理或CDN或防火墙一样的服务,我可以限制每分钟的用户访问频率

例如,我想拒绝用户,如果该用户每分钟发出超过20个请求,或者每秒发出超过2个请求,那么我可以保护某些用户尝试向我的服务发送请求

有这样的服务吗?它叫什么?还有什么你可能会建议我的?

非常感谢

1 个答案:

答案 0 :(得分: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;
    }
}