本文参考http://www.iitshare.com/java-download-files-with-nginx.html
文章标题采用的是和参考资料一样的标题(赞)
nginx配置如下:
location /log/ {
#禁止浏览器直接访问
internal;
limit_rate 200k;
alias /root/data/;
error_page 404 =200 @backend;
}
location @backend {
proxy_pass http://10.222.138.16:8086/openapi/open$request_uri;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /openapi/ {
proxy_pass http://10.222.138.16:8086/$request_uri;
}
Java代码如下:
//httpResponse.setHeader("Content-Disposition", "attachment; filename=\""+filename+"\"");
//httpResponse.setHeader("Content-Type", "application/octet-stream");
//httpResponse.setHeader("X-Accel-Redirect", "/log/"+url);
HttpHeaders header = new HttpHeaders();
header.add("Content-Disposition", "attachment; filename=\""+filename+"\"");
header.add("Content-Type", "application/octet-stream");
header.add("X-Accel-Redirect", "/log/"+url);
请求地址为:
http://10.222.138.180/log/download?access_token=a68cafa8b80f08c7db2af5b654435dd2
日志文件在目录/root/data下
通过wget下载时可以加上参数--content-disposition,下载的文件名就是Java代码设置的filename(对wget版本要求 >= 1.15)
