利用Nginx限制API接口刷流量
自己的API随机图接口,最近发现有人在爬图片导致源站压力过大,不得不做出亿点点优化。众所周知服务器的资源是有限的,但客户端的请求是无限的(狂点F5) ,但是为了用户请求能够正常响应,这个时候就要抛弃一些不正常的客户端请求。
这里我使用环境为NGINX,这里以NGINX为例来实现限制流量或者非正常IP的访问。访问到设置阈值后,直接抛出503或者444错误给客户端来限制不正常访问。
这里使用了NGINX的以下内置功能,可以运行nginx -V
来查看是否开启
- ngx_http_limit_conn_module
- ngx_http_limit_req_module
1 | http { |
自定义503页面
1 | error_page 500 502 503 504 /50x.html; |
参数说明
参数补充说明:$binary_remote_addr
是限制同一客户端ip地址;$server_name
是限制同一server最大并发数;limit_conn
为限制并发连接数;limit_rate
为限制下载速度;burst
为请求限流,每秒放行多少请求;
本文是原创文章,采用CC BY-NC-SA 4.0协议,完整转载请注明来自钧言极客
评论 ()