Nginx配置下载站点
一 下载站点
1.1 下载站点配置
语法:autoindex on | off;
默认值:autoindex off;
配置段:http,server,location
Nginx默认不允许列出整个目录浏览,需要如下配置:
[root@master ~]# mkdir /download
#创建Nginx服务端下载目录
[root@master ~]# cp /etc/nginx/conf.d/default.conf /download/ #创建测试文件
[root@master download]# vi /etc/nginx/conf.d/down.conf server { listen 80; server_name 192.168.1.220; location /down { alias /download; access_log /var/log/nginx/down.access.log main; error_log /var/log/nginx/down.error.log warn; autoindex on; autoindex_localtime on; autoindex_exact_size off; charset utf-8,gbk; if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx|conf)$) {add_header Content-Disposition 'attachment;';} } }
[root@master download]# nginx -t -c /etc/nginx/nginx.conf #检查配置文件 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful [root@master download]# nginx -s reload #重载配置文件
释义:
autoindex on:on开启目录浏览
autoindex_exact_size off:修改为off,以KB、MB、GB显示文件大小,默认为on,以bytes显示出⽂件的确切⼤⼩。
autoindex_localtime on:显示的⽂件时间为⽂件的服务器时间。默认为off,显示的⽂件时间为GMT时间。
charset utf-8,gbk:默认中文目录乱码,需要添加此行解决乱码问题。
注意:
1:展示目录选择使用alias而不是root
原因是alias默认不会拼接location后面的/down,而root会进行拼接,即若写为root /download,实际展示的目录是/download/down,因此如上选择alias更为合适。
2:添加了对$request_filename内置变量的if判断
目的是为了让txt等文件进行下载而不是浏览,如果不做此配置,点击目录下的txt文件,大部分浏览器默认是直接浏览而非下载。此处通过添加响应头来控制:
Content-Disposition:该属性有两种类型:inline 和 attachment;
- inline :将文件内容直接显示在页面
- attachment:弹出对话框让用户下载
1.2 测试验证

[root@master nginx]# cp -r /etc/nginx/ /download/ [root@master nginx]# cd /download/ [root@master download]# ls default.conf nginx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?