nginx—限制用户访问
1. 为什么要限制用户访问
我们经常会遇到这种情况,服务器流量异常,负载过大等等。对于大流量恶意的攻击访问,会带来带宽的浪费、服务器压力、影响业务,往往考虑对同一个ip的连接数、并发数进行限制。
2. 如何限制用户访问
修改nginx配置文件:
vim /usr/local/nginx/conf/nginx.conf
36 #gzip on;
37 limit_conn_zone $binary_remote_addr zone=addr:10m; #大小是10M内存来对于IP传输开销
38 limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; #1s中不超过一个请求
39 server {
wq
48 location /download {
49 limit_conn addr 1; #只能一个并发,多了会报错
50 #limit_rate 50k; #限制带宽,每秒最多50k
51 }
nginx -t #语法检测
nginx -s reload #在不暂停服务的情况下重新加载
mkdir /usr/local/nginx/html/download/
cd /usr/local/nginx/html/download/
ls
cd /usr/local/nginx/logs
>access.log #清空日志(方便实验效果的观察)
测试:
ab -c 10 -n 1000 http://172.25.254.1/download/c.jpg #查看日志503报错