启用 autoindex_exact_size off 可将 Nginx 文件列表中的字节数自动转换为 KB、MB 等易读单位(如 10485760 → 10.0M),需在启用 autoindex on 的 location 块中显式配置,且须重载生效。

在 Nginx 的文件列表(autoindex)模式下,默认显示的文件大小是字节数,对普通用户极不友好。启用 autoindex_exact_size off 可以让 Nginx 自动将字节数转换为 KB、MB、GB 等易读单位,显著提升文件共享站的可用性与体验。
autoindex_exact_size 的作用与取值
该指令控制 autoindex 模块在生成目录列表时如何显示文件大小:
-
on(默认):直接输出原始字节数,如
10485760字节 → 显示为10485760 -
off:启用智能格式化,自动换算并保留一位小数,如
10485760→10.0M;2048→2.0K;512→512(不足 1K 仍显示字节)
正确配置位置与示例
必须在启用 autoindex on 的 location 块中设置,且仅对 autoindex 生效,不影响其他响应头或日志:
location /files/ {
autoindex on;
autoindex_exact_size off; # 关键:开启人性化大小显示
autoindex_format html; # 可选:使用 HTML 格式(Nginx 1.17+)
autoindex_localtime on; # 可选:显示本地时间而非 UTC
}注意:autoindex_exact_size 不支持在 http 或 server 级别全局继承,必须显式写在具体 location 中。
搭配 autoindex_format 提升可读性(推荐)
Nginx 1.17+ 支持 autoindex_format html | json | xml。设为 html 后,页面会使用语义化标签(如 <td class="size">),方便前端通过 CSS 微调样式或 JS 增强功能:<ul>
<li>文件名列加链接与图标(需自定义模板或前端注入)</li>
<li>大小列右对齐、添加单位颜色区分(如 MB 用蓝色、GB 用绿色)</li>
<li>结合 <code>autoindex_localtime on,时间显示更符合用户习惯
常见误区与注意事项
这个配置看似简单,但容易踩坑:
- 修改后务必重载 Nginx(
nginx -s reload),不是重启;否则配置不生效 - 浏览器缓存可能保留旧的 HTML 列表页,建议硬刷新(Ctrl+F5)或检查响应头中的 Last-Modified
- 如果启用了反向代理或 CDN,确保它们未缓存 autoindex 生成的动态 HTML 页面
- 该指令只影响目录列表中的“大小”字段,不改变 HTTP 响应头(如 Content-Length)或下载行为
不复杂但容易忽略——一行配置就能让访客一眼看懂文件有多大,是文件共享站最基础也最重要的用户体验优化之一。


















