nginx配置直接下载文件
默认情况下通过Nginx服务器来访问txt等文件,会在浏览器上直接打开.如果想要实现下载文件的效果,则需要在nginx服务端做一些设置
在nginx.conf追加server
server {
listen 10086;
# 根目录设置
root /opt/downloads;
# 启用目录列表
location / {
autoindex on; # 启用目录列表
autoindex_exact_size off; # 以更人性化的格式显示文件大小
autoindex_localtime on; # 以服务器本地时间显示文件时间
charset utf-8; # 设置字符集为 UTF-8
try_files $uri $uri/ =404; # 确保请求的文件或目录存在,否则返回 404
add_header Content-Type appliction/octet-stream;
add_header Content-Disposition attachment;
}
# 禁止访问上级目录,防止目录遍历攻击
location ~ /\.\./ {
deny all;
}
# 禁止访问 .js* 文件
location ~ /\.js {
deny all;
}
}
扩展说明:
Content-Disposition:
默认模式,以页面的一部分或者整个页面的形式展示
Content-Disposition inline
指定附件模式
Content-Disposition attachment
指定附件模式并指定被下载文件的名称
Content-Disposition attachment; filename=“filename.jpg”
Content-Type:
application/xhtml+xml :XHTML格式
application/xml : XML数据格式
application/atom+xml :Atom XML聚合格式
application/json : JSON数据格式
application/pdf :pdf格式
application/msword : Word文档格式
application/octet-stream : 二进制流数据(如常见的文件下载)