限制速度
添加
limit_rate 50k;限制速度50K
limit_rate_after 1000k;当下载超过1000k时
location /mp3 {
root html/wyt;
limit_rate 50k;
limit_rate_after 1000k;
auth_basic "wyt";
auth_basic_user_file htpasswd;
autoindex on;
}
dd if=/dev/zero of=100M.dd bs=1M count=100 #建立一个100M的数据文件提供下载
限制连接数
限制并发连接数
http {
limit_conn_zone $binary_remote_addr zone=perip:10m;
#放到http
server {
...
limit_conn perip 1;#只限制一个IP地址访问
}
建立第二个请求
报503错误

说明限制,服务器临时不可用
突发限制访问频率
http {
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; #1s一次
...
server {
...
location /mp3/ {
limit_req zone=one burst=2;
}
Nginx的限流都是基于漏桶算法
漏桶算法和令牌桶算法
漏桶算法:水先进入到漏桶里,漏桶以一定的速度出水,当水流入速度过大会直接溢出 令牌桶算法:以一个恒定的速度桶会产生令牌,而如果请求需要被处理,则需要先从桶里获取一个令牌,当桶里没有令牌可取时,则拒绝服务。
如何优化Nginx?
- nginx配置的优化:从进程数、连接设置、缓存设置方面进行优化
- 从集群架构优化;
- 让worker进程使用普通用户运行,使用非root运行nginx master;
- 配置nginx worker进程个数,worker进程为用户提供服务通常设置为cpu核数×2,修改nginx.conf配置文件第一行 : worker_processes 4;