nginx搭建文件服务器
来源:互联网 发布:c语言主函数全局变量 编辑:程序博客网 时间:2024/05/16 19:30
这样做意味着我们的程序需要将文件内容从磁盘经过一个固定的 buffer 去循环读取到内存,再发送给前端 nginx 服务器,最后才到达用户。当需要下载的文件很大的时候,这种方式将消耗大量内存。理想的解决方案应该是由 tornado 进行权限控制,通过后让前台的 nginx服务器直接将文件发送给用户 因为像nginx 这样的前台更善于处理静态文件。这样一来tornado就不会被 I/O 阻塞了。幸运的是主流的web 服务器就实现了X-Sendfile机制。
1、什么是X-Sendfile?
X-Sendfile 是一种将文件下载请求由后端应用转交给前端 web 服务器处理的机制,它可以消除后端程序既要读文件又要处理发送的压力,从而显著提高服务器效率,特别是处理大文件下载的情形下。
X-Sendfile 通过一个特定的 HTTP header 来实现:在 X-Sendfile 头中指定一个文件的地址来通告前端 web 服务器。当 web 服务器检测到后端发送的这个 header 后,它将忽略后端的其他输出,而使用自身的组件(包括 缓存头 和 断点重连 等优化)机制将文件发送给用户。
不过,在使用 X-Sendfile 之前,我们必须明白这并不是一个标准特性,在默认情况下它是被大多数 web 服务器禁用的。而不同的 web 服务器的实现也不一样,包括规定了不同的 X-Sendfile 头格式。如果配置失当,用户可能下载到 0 字节的文件。
使用 X-Sendfile 将允许下载非 web 目录中的文件(例如/root/),即使文件在 .htaccess 保护下禁止访问,也会被下载。
2、nginx配置
nginx默认支持X-Sendfile机制,不需要额外安装模块。
参考地址:
http://blog.itpub.net/27043155/viewspace-734233/
https://www.nginx.com/resources/wiki/start/topics/examples/xsendfile/
我的nginx配置如下:
internal 表示这个路径只能在 Nginx 内部访问,不能用浏览器直接访问防止未授权的下载。
3、tornado
需要发送的HTTP 头为 X-Accel-Redirect,注意不同的web服务器是有区别的。
- nginx搭建文件服务器
- nginx搭建文件服务器
- Nginx--搭建静态文件服务器
- redhat nginx搭建文件服务器
- Nginx搭建静态文件服务器
- nginx + FastDFS分布式文件服务器搭建
- Nginx + nginx-upload-module 文件服务器搭建
- nginx + FastDFS分布式文件服务器搭建及配置
- Ubuntu 安装Nginx服务 并搭建文件服务器
- 使用nginx搭建简单的文件服务器
- 如何利用nginx或tomcat搭建文件服务器
- nginx搭建文件服务器获取上传进度
- 使用nginx搭建简单的文件服务器
- Ubuntu下搭建简单的nginx文件服务器
- 在Windows环境下搭建Nginx文件服务器(简单实用版)
- Nginx入门指南,快速搭建静态文件服务器和代理服务器
- Nginx入门指南,快速搭建静态文件服务器和代理服务器
- Nginx 作为静态文件服务器
- 发布代码到 cocoapod
- android 动画之翻页
- equals()方法总结
- Flink on Yarn(HA配置)
- Android UI-聊天界面
- nginx搭建文件服务器
- IntelliJ IDEA For Mac 快捷键
- Win7 x64 PL/SQL 连接 Oralce 提示 Could not initialize "%ORACLE_HOME%\bin\oci.dll"
- Php中Promise + co/yield 协程的使用方法详解
- Qt中如何检测程序是Debug版还是Release版
- CentOS部署应用环境
- Failed to load resource: the server responded with a status of 404
- 写开源项目用Gradle发布到jcenter
- mysql 数据库操作