Nginx X-Accel-Redirect 静态转发

有时候我们需要做下载文件,通常是使用类似 PHP readfile函数将文件输出到浏览器,再通过设置mini 类型来实现下载,这样做会有效率问题和网络大量网络IO,那么使用 X-Accel-Redirect 就可以避免这个问题具体配置如下:

location /protected_files {
  internal;
  proxy_pass https://127.0.0.8/file/; #使用代理
}

#或者
location /protected_files {
  internal;
  root  /var/www/file;
}

php 代码

//发送本地文件
header("X-Accel-Redirect:/protected_files/10.mp4");
//发送远程文件 最终会转发到https://127.0.0.8/file/file?path=xxx.mp4
header("X-Accel-Redirect:/protected_files/file?path=xxx.mp4");

但是经过测试这种转发远程文件的速度,远不及,HTTP 302 的速度快。
为了权限认证下载只能是妥协一下了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 上一篇《WEB请求处理一:浏览器请求发起处理》,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建...
    七寸知架构阅读 81,530评论 21 356
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,084评论 25 709
  • 架构师必须知道的26项PHP安全实践 PHP是一种开源服务器端脚本语言,应用很广泛。Apache web服务器提供...
    meng_philip123阅读 11,286评论 1 161
  • 过去的过去 开心就咧嘴大笑 难过就嚎啕大哭 什么嘲笑都不懂 现在的现在 找不到理由开心 也不知道难过 麻木的一具脸...
    极度差阅读 1,337评论 0 1
  • 把自己的伤,留给酒,会更伤。 把自己的伤,留给泪,会绝望。 把自己的伤,留给歌,伤更长。 把自己的伤,留给你,是妄...
    一直在走是幸福阅读 3,308评论 0 1

友情链接更多精彩内容