ServerName不参与访问控制,防止大文件下载需组合使用Require指令与模块:按MIME类型禁止(最可靠)、按后缀+大小用LargeFileLimit限速、按IP并发数压制多线程、FilesMatch兜底拒绝对应后缀。

ServerName 本身不参与访问控制,它只用于标识虚拟主机的主域名,不能直接防止下载大文件。真正起作用的是 Apache 的 Require 指令(配合其他模块和上下文),需结合请求特征(如 MIME 类型、URI 后缀、文件大小、客户端 IP)来限制行为。
要防止用户下载大文件,核心不是靠 ServerName,而是把 Require 放在合适的配置块中(如 <location></location>、<directory></directory> 或 <filesmatch></filesmatch>),并搭配环境变量或条件判断实现精准拦截。
以下是几种实用、可落地的组合方式:
按 MIME 类型禁止高风险大文件类型
Apache 在响应静态文件时会自动设置 Content-Type,比后缀更可靠。适合封禁 ZIP、RAR、ISO、MP4 等通用大文件类型:
<Location "/downloads">
# 标记常见大文件 MIME 类型
SetEnvIf Content-Type "^application/(zip|rar|x-rar-compressed|octet-stream|x-7z-compressed|iso)$" block-bigfile
SetEnvIf Content-Type "^video/.*$" block-bigfile
SetEnvIf Content-Type "^application/x-tar$" block-bigfile
<RequireAll>
Require all granted
Require not env block-bigfile
</RequireAll>
</Location>✅ 前提:文件由 Apache 直接读取(非 PHP 输出或 X-Sendfile);需确认 mime.types 中已定义对应类型。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
按文件后缀 + 大小阈值双重拦截(推荐)
单纯后缀易绕过,加大小判断更严谨。用 mod_bw 的 LargeFileLimit 是最准的方式(需提前编译安装 mod_bw):
<IfModule mod_bw.c>
BandwidthModule On
# 对 .zip/.iso/.mp4 文件,超过 50MB 就限速到 1KB/s(近乎阻断)
LargeFileLimit .zip 52428800 1024
LargeFileLimit .iso 52428800 1024
LargeFileLimit .mp4 52428800 1024
</IfModule>⚠️ 注意:LargeFileLimit 是按扩展名+字节数匹配,单位是字节(50MB = 52428800),限速值设为极低即可达到“防下载”效果。
按 IP 并发连接数压制多线程下载
迅雷、IDM 等工具常开 5–20 个连接抢下大文件。用 mod_limitipconn 控制单 IP 并发:
<IfModule mod_limitipconn.c>
<Location "/downloads">
MaxConnPerIP 2
# 只对二进制流类大文件生效(依赖 MIME 识别)
OnlyIPLimit application/octet-stream application/zip video/mp4
</Location>
</IfModule>✅ 需确保 ExtendedStatus On 已启用,且模块已加载。
对敏感路径统一拒绝对应后缀(兜底防护)
防止用户绕过目录结构直连 .zip 或 .bak 文件:
<FilesMatch "\.(zip|rar|iso|tar\.gz|7z|mp4|mov|mkv)$">
Require all denied
</FilesMatch>? 放在 <directory></directory> 或虚拟主机配置中生效;结尾必须加 $ 防止误杀 index.php 这类含子串的文件。
不复杂但容易忽略:所有 Require 规则都依赖正确的上下文作用域(不能写在 ServerName 行附近),且默认策略需显式声明(如 Require all denied 或 Require all granted)。配置后务必用 apachectl configtest 验证,并用 curl -I 实测响应头与状态码。

















