一、项目目标是什么

原笔记先给出了一个很直观的需求:
做一个能像镜像站那样展示目录结构的视频下载站。

这个案例的核心要求有三点:

  • 浏览器打开后直接显示目录结构
  • 后续还能增加 svip 认证功能
  • 还能增加状态统计功能

其中最基础的一步,就是先把“目录结构可浏览”这件事实现出来。

二、这个场景为什么适合用 autoindex

原笔记明确说明,这类下载站不依赖首页文件,而是希望用户直接看到站点目录中的文件列表。
这正是 Nginx autoindex 模块的典型使用场景。

笔记中提到的几个关键指令如下:

指令 作用
autoindex on; 开启目录索引功能
autoindex_localtime on; 显示本地时间
autoindex_exact_size off; 文件大小按人类可读方式显示

也就是说,只要站点目录存在、首页文件不存在、并且启用了 autoindex,Nginx 就能自动把目录内容列出来。

三、下载站的核心配置怎么写

原笔记给出的站点信息是:

  • 域名:v.oldboylinux.cn
  • 站点目录:/app/code/v/

对应的配置示例如下:

server {
    listen       80;
    server_name  v.oldboylinux.cn;
    root   /app/code/v;
    error_log /var/log/nginx/v-error.log notice;
    access_log /var/log/nginx/v-access.log main;
    autoindex on;
    autoindex_localtime on;
    autoindex_exact_size off;
    location / {
        index  index.html;
    }
}

这份配置里最值得注意的点有:

  • server_name 用来接收下载站域名请求
  • root 指向实际文件目录
  • error_logaccess_log 单独指定了站点日志
  • autoindex 相关指令决定了目录列表的展示方式

四、如何准备测试文件

原笔记并没有要求先放一个完整网站,而是直接在目录里创建测试文件:

[root@oldboy01 conf.d]# mkdir -p /app/code/v/
[root@oldboy01 conf.d]# touch /app/code/v/8k-blue-ray{01..10}.avi

这种做法非常适合验证目录索引站点:

  • 不需要写页面代码
  • 只要目录下有文件
  • 浏览器就能直接看到可浏览的文件列表

五、配置完成后如何验证

原笔记采用的是一套很标准的检查流程。

先检查语法:

[root@oldboy01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

再重载 Nginx:

[root@oldboy01 conf.d]# systemctl reload nginx

然后在 Windows 主机里添加 hosts 解析:

192.168.1.20  v.oldboylinux.cn

最后用浏览器访问:

http://v.oldboylinux.cn/

此时页面就会像目录索引站一样,把站点目录里的文件列出来。

六、这个案例背后体现了哪些 Nginx 思路

虽然这个案例看起来只是“列目录”,但它已经把几个核心概念串起来了:

  • server_name 和域名绑定一个独立站点
  • root 指向下载资源所在目录
  • 用独立日志记录该站点的访问和错误
  • autoindex 替代传统首页文件输出

这类站点特别适合:

  • 文件下载页
  • 软件仓库镜像页
  • 资源归档页

七、小结

这个下载站案例说明,Nginx 不一定只能托管普通网页。
在没有首页文件的情况下,通过 autoindex 一样可以快速搭建一个可浏览目录的下载站,而且配置简单、验证直接,很适合拿来理解目录索引型站点的工作方式。