在nginx中使用x-sendfile的解决方案

已采纳
3 6874
ajian lucy 2016-12-03
悬赏:5飞吻

本篇内容

  • 什么是X-Sendfile?

  • nginx X-Sendfile怎么样使用?

在nginx中使用x-sendfile的解决方案

  1. 什么是X-Sendfile?

在nginx中使用x-sendfile的解决方案

在nginx中使用x-sendfile的解决方案

nginx x-sendfile

在nginx中使用x-sendfile的解决方案

在nginx中使用x-sendfile的解决方案

这样做有什么问题?这样做就意味着我们的程序需要将文件内容从磁盘经过一个固定的buffer去循环读取到内存,在发送给web服务器,最后才到达用户,当需要下载大文件的时候,将消耗大量的内存,甚至引发php进程超时或崩溃。Cache也会很头疼,更不用提中断重连的情况了!

一个理想的解决方式,由PHP程序进行权限检查等逻辑的判断,一切从后台通过,让web服务器直接发送文件给用户,像nginx这样的,更善于处理静态文件,这样php脚本就不会发生I/O阻塞了!

如何使用?

nginx默认支持这个特性,不需要加载额外的模块,只是实现的方式有些不同,需要发送的HTTP头为X-Accel-Redirect,另外配置文件里面需要这样写

在nginx中使用x-sendfile的解决方案

这样用户就会下载到/some/path/protected/iso.img这个路径之下的文件

在nginx中使用x-sendfile的解决方案

如果你想要发送的是/some/path/iso.img文件,那么nginx配置应该是这样的

在nginx中使用x-sendfile的解决方案

在nginx中使用x-sendfile的解决方案

git部署使用教程

你想要的正则神器在这里!

js文件加载优化与输出当前时间

Nginx配置性能优化与压力测试webbench总结篇

Windows-Redis安装详解及配置


热忱回答3


最近热帖

近期热议

  1. javascript——prototype与__proto 9
  2. Mysql 中出现的Data truncated for column 3
  3. 在nginx中使用x-sendfile的解决方案 3
  4. 高版本jQuery面插件实现Ajax上传图片 1
  5. Thinkphp Socket.class.php 类的使用 1
  6. 使用ionic3创建第一个App 0
  7. ios-oc html5 0
  8. nginx.conf 0
  9. 基于ionic3.4.0的项目搭建 0
  10. php 缩略图 0