推荐 ESA 边缘防护 + Nginx 兜底 的组合。
参考资料
- 在 ESA 配置了“自定义缓存标签名称”(比如改成 ESA-Cache-Tag),源站就必须同步改用这个新标头名。
- 针对“流氓”爬虫,核心策略是 “拒绝礼貌,直接开火”。robots.txt 对它们形同虚设,必须在 Nginx 或 ESA 层面主动拦截。
- 阿里云 ESA(边缘安全加速)的“托管 DCV”功能。
- “边缘清洗 + 源站隐身 + Nginx 兜底” 三层纵深
- Zstd 相比 Gzip 和 Brotli,在性能上的突出表现确实是“速度与压缩率的平衡”
- 推荐 ESA 边缘防护 + Nginx 兜底 的组合。
- _acme-challenge.madama.cnDNS 直接解析madama.cn.118555529491327488.dcv.aliyun-esa.com,申请失败
- 导致 net::err_blocked_by_response 的直接原因
推荐 ESA 边缘防护 + Nginx 兜底 的组合。
针对扫描,核心是识别“批量探测”行为并自动封禁,而非逐个拉黑 IP。结合你 Fresns 的场景,推荐 ESA 边缘防护 + Nginx 兜底 的组合。
🛡️ 首选:ESA 扫描防护规则(标准版+)
阿里云 ESA 内置了针对扫描的专项模块,直接在控制台开启即可,零运维成本:
高频扫描封禁:同一 IP 在 1 分钟内触发 10 次基础防护规则,封禁 1 天。
目录遍历封禁:10 秒内请求超 20 次、404 响应超 70% 且尝试不存在的目录超 5 个,封禁 30 分钟。
扫描器 UA 封禁:自动拦截 sqlmap、Nessus、Acunetix 等扫描器特征。
⚙️ 兜底:Nginx 精准封堵(源站防线)
若 ESA 套餐不支持或请求穿透,在 Nginx 中配置以下规则:
1. 敏感文件路径封堵(最有效)
扫描器最爱探测 .env、.git、备份文件。在 server 块中直接 return 404,避免暴露拒绝逻辑:
location ~* \.(bak|conf|sql|log|env|ini|yml|git|svn|htaccess)$ { return 404; }
location ~ /\. { deny all; }2. UA 黑名单拦截
在 http 块用 map 定义扫描器 UA,server 块中判断 $bad_ua 并返回 403:
# http 块中定义
map $http_user_agent $bad_ua {
default 0;
~*(sqlmap|nikto|dirbuster|nuclei|acunetix|masscan|nmap|wpscan) 1;
}
# server 块中拦截
if ($bad_ua) { return 403; }3. 针对路径探测的精准限流
普通限流按 IP 计算,扫描器会在同一个 IP 下请求大量不同路径。用 $binary_remote_addr$uri 作为限流键,能精准识别“短时间内请求大量不同 URI”的行为:
limit_req_zone $binary_remote_addr$uri zone=path_scan:10m rate=2r/s; # 在 location 中应用 limit_req zone=path_scan burst=5 nodelay;
建议优先启用 ESA 的扫描防护规则,它能在边缘直接完成拦截,完全不消耗你的 Nginx 和 PHP 8.3-FPM 资源。
时间:2026-09-28 12:10:34
来源:https://yun.ciilii.com/
