nginx不浏览直接下载文件

本文介绍如何在Nginx中配置,使得客户端请求特定类型的附件时,浏览器会显示下载对话框,而不是直接打开文件。通过在Nginx配置文件中添加特定规则,可以实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当我们使用Nginx时,如果要让一些附件比如txt,pdf,doc等不直接在浏览器打开,而弹出另存为的对话框(也就是下载),则可以在nginx里添加如下配置:
1 location /
2 {
3 if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){
4 add_header Content-Disposition: 'attachment;';
5 }
6 }
如果客户端请求的文件以txt、pdf、doc、xls为后缀的话则会让浏览器出现另存为对话框.
### 配置 Nginx 以提供静态文件下载 为了配置 Nginx 来服务静态文件以便于下载,需编辑 Nginx 的配置文件。通常情况下,此操作涉及修改站点特定的配置文件是全局配置文件 `/etc/nginx/nginx.conf`。 #### 创建或编辑站点配置文件 假设要为名为 `example.com` 的网站设置静态文件服务,则可以在 `/etc/nginx/sites-available/` 下创建一个新的配置文件并链接到 `/etc/nginx/sites-enabled/` 或者直接编辑现有的服务器块[^1]: ```bash sudo nano /etc/nginx/sites-available/example.com ``` #### 定义位置和根目录 在该配置文件内定义一个 `server` 块来指定监听端口、域名以及最重要的——文档根路径 (`root`) 和处理请求的位置 (`location`) 设置。对于简单的静态文件分发来说,只需指明存储这些资源的地方即可[^4]: ```nginx server { listen 80; server_name example.com; root /var/www/html/static_files; # 替换为实际存放静态文件的路径 location /downloads/ { autoindex on; # 启用自动索引功能显示目录列表 alias /var/www/html/static_files/downloads/; add_header Content-Disposition "attachment"; # 强制浏览器提示保存而非在线打开 expires max; # 设定缓存过期时间最长 access_log off; # 关闭访问日志减少I/O负载 } } ``` 上述配置中的 `autoindex on` 可让用户浏览目录结构;而通过设定 `Content-Disposition header` 则可以确保当用户点击链接时会触发下载对话框而是尝试直接查看内容。另外还启用了长时间缓存机制(`expires max`) 并关闭了必要的访问记录(`access_log off`) 以此提高性能效率[^5]。 最后记得测试新配置的有效性并且重新加载 Nginx 让更改生效: ```bash sudo nginx -t && sudo systemctl reload nginx ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值