autoindex_exact_size off 使 Nginx 目录列表中文件大小按 1024 进制自动换算并保留一位小数(如 10.0M),需配合 autoindex on 和 autoindex_format html 在 location 块中启用。

autoindex_exact_size 控制 Nginx 自动生成的目录列表中文件大小的显示方式。默认显示原始字节数(如 10485760),对用户不友好;设为 off 后,Nginx 会自动换算成 KB、MB、GB,并保留一位小数(如 10.0M),更直观易读。
作用与取值逻辑
该指令只在启用 autoindex 的 HTML 列表中生效,且仅影响页面上“Size”列的展示:
- on(默认):直接输出字节数,无单位转换,例如 2097152 → 显示为 2097152
- off:启用智能格式化,按 1024 进制换算,不足 1KB 仍显示字节(如 512 → 512),1024–1048575 字节 → X.XK,超 1MB → X.XM,依此类推
必须配合的配置项
autoindex_exact_size 不是独立生效的,需满足两个前提条件:
- 所在 location 块中已启用 autoindex on
- 同时设置 autoindex_format html(Nginx 1.17+ 默认值,但低版本需显式声明)
若使用 xml/json 格式,或未开启 autoindex,该指令完全无效。
正确写法与常见误区
它不能继承,也不能写在 http 或 server 级别全局生效,必须逐个 location 显式声明:
- ✅ 正确(在目标 location 内):
location /downloads/ {<br> autoindex on;<br> autoindex_format html;<br> autoindex_exact_size off;<br> autoindex_localtime on;<br>} - ❌ 错误:
– 写在 server 块开头,但未在具体 location 中重复声明
– 漏掉autoindex_format html,尤其在旧版 Nginx 中
验证与生效要点
修改后需重载 Nginx(nginx -s reload),不是重启。刷新浏览器时注意清除缓存——部分浏览器会缓存 autoindex 页面的 HTML 响应头,导致看似没变化。
可临时用 curl 验证:curl -I http://your-domain/downloads/ 确认响应状态为 200;再直接访问路径,观察 Size 列是否已变成带单位的格式。

















