http {
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
server {
location / {
limit_req zone=one burst=20 nodelay;
# 其他配置...
}
}
}
zone=one:10m
:创建名为one的共享内存区,大小10MBrate=10r/s
:限制每秒10个请求burst=20
:允许突发20个请求nodelay
:不延迟处理突发请求http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
location / {
limit_conn addr 5;
# 其他配置...
}
}
}
zone=addr:10m
:创建名为addr的共享内存区,大小10MBlimit_conn addr 5
:每个IP最多5个并发连接LoadModule evasive20_module modules/mod_evasive24.so
<IfModule mod_evasive24.c>
DOSHashTableSize 3097
DOSPageCount 10
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSEmailNotify admin@example.com
</IfModule>
DOSPageCount
:同一页面每秒请求数阈值DOSSiteCount
:同一站点每秒总请求数阈值DOSBlockingPeriod
:封锁时间(秒)LoadModule limitipconn_module modules/mod_limitipconn.so
<IfModule mod_limitipconn.c>
<Location />
MaxConnPerIP 5
NoIPLimit image/*
</Location>
</IfModule>
MaxConnPerIP 5
:每个IP最多5个并发连接NoIPLimit image/*
:对图片文件不做限制LoadModule qos_module modules/mod_qos.so
<IfModule mod_qos.c>
QS_ClientEntries 1000
QS_SrvMaxConnPerIP 10
QS_SrvMaxConnClose 180
</IfModule>
QS_SrvMaxConnPerIP 10
:每个IP最多10个并发连接需要根据您的具体业务场景选择合适的限制策略和参数值。