nginx 实现浏览器文件下载服务

2018/07/21

这里记录如何用 nginx 搭建一个简易的 file server,实现在浏览器上进行文件的下载操作。

要实现文件下载功能非常非常容易,不需要写任何前端的东西,只需要用 nginx 本身的配置文件就可以实现。

依然是在配置文件conf/nginx.conf下的 http { server {...} } 的部分,如下配置这样一个location:

location /myfiles {
    alias /export/share/test/;   # 文件存放目录,注意要以 '/' 结尾;
    index index.html;  # 如果文件存放目录有index.html,会跳转到index.html
    autoindex on;               # 自动列出目录下的文件;
    autoindex_exact_size off;   # 文件大小按 GM 的格式显示,而不是 Bytes
}

然后,这就做完了。

运行 nginx 之后,在浏览器上打开 http://***/myfiles/。(替换 *** 的部分为你的 Server IP/域名/localhost :))

如果 index.html 存在,会自动跳转到 index.html 页面:

如果 index.html 不存在,则自动会列出文件目录下的文件。例如,现在可以看到这个目录下的 test.txt 文件:

点击文件名即可下载。命令行爱好者也可以用 wget 下载,还可以断点续传哟。

Reference:ngx_http_autoindex_module

题外话:某年某月某日,同组的大佬得知浏览器可以用 80 端口访问服务器以后就开始搞事,于是我就跟着学习了一些 server 相关的东西。当个社会人就是这点好啊。

nginx 实现浏览器文件下载服务的更多相关文章

  1. nginx 配置一个文件下载服务

    cat openvpn.conf server { listen ; server_name localhost; location / { root /home/openvpn/client_fil ...

  2. Nginx 安装成 Windows 服务

    Nginx 安装成Windows 服务方法,具体方法如下 1. 下载nginx windows版本 http://www.nginx.org 2. 下载微软的2个工具: instsrv.exe.srv ...

  3. nginx的web缓存服务环境部署记录

    web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输 ...

  4. Python开发【Tornado】:搭建文件下载服务、音频文件播放

    Tornado 如何做文件下载 要求:浏览器输入url地址,直接弹窗提示下载 Tornado服务端,搭建文件下载服务 #!/usr/bin/env python # -*- coding:utf-8 ...

  5. Nginx与浏览器缓存

    Nginx与浏览器缓存 一.浏览器对缓存的处理:Internet选项 ★ 控制请求服务器策略:是忽略资源的缓存策略的情况下额外强制请求服务器的意思.  ★ 检查存储的页面较新版本 1.每次访问网页时  ...

  6. nginx windows 安装为服务.

    安装Nginx 下载windows版nginx (http://nginx.org/download/nginx-1.10.0.zip),之后解压到需要放置的位置(D:\xampp\nginx) 将N ...

  7. 三、直播整体流程 五、搭建Nginx+Rtmp直播流服务

    HTML5实现视频直播功能思路详解_html5教程技巧_脚本之家 https://m.jb51.net/html5/587215.html 三.直播整体流程 直播整体流程大致可分为: 视频采集端:可以 ...

  8. nginx静态资源web服务

    静态资源:非服务器动态运行生成的文件 浏览器端渲染:html ,css,js 图片:jpeg,gif,png 视频:flv ,mpeg 文件:txt,等任意下载文件 静态资源服务场景:CDN 文件读取 ...

  9. linux nginx 部署多套服务(以react包为例)

    前言 今天我特地写下笔记,希望可以完全掌握这个东西,也希望可以帮助到任何想对学习这个东西的同学. 本文用nginx部署服务为主要内容,基于CentOs 7.8系统. 文档版本:1.0.1 更新时间:2 ...

随机推荐

  1. github 的 fork 取消功能

    进入该 fork 目录后 找到 Settings 点击后拉到底 找到含有 Delete 字样的按钮点击 弹出的对话框输入你删除的这个项目名 后删除 链接

  2. Java如何进行Base64的编码(Encode)与解码(Decode)

    关于base64编码Encode和Decode编码的几种方式 Base64是一种能将任意Binary资料用64种字元组合成字串的方法,而这个Binary资料和字串资料彼此之间是可以互相转换的,十分方便 ...

  3. rf-idf的java实现

    还存在的问题是,对于其中分词借助的库还存在问题 参考此篇链接 http://www.cnblogs.com/ywl925/archive/2013/08/26/3275878.html 具体代码部分: ...

  4. 一文读懂跨平台框架 Flutter 的搭建与运行

    作者:个推iOS开发工程师 伊泽瑞尔 Flutter是Google推出的跨平台的解决方案,用以帮助开发者在 Android 和 iOS 两个平台开发高质量原生应用的全新移动 UI 框架. 之前我们为大 ...

  5. 如何修改linux 用户登录后默认目录

    1.linux用户登录后默认目录是在/etc/passwd文件设置的.如下图所示,一共显示了四行数据,其中第一行的/root即为root用户登录后的默认目录,第二行daemon用户的默认目录是/usr ...

  6. Ajax的封装。

    封装 Ajax 因为Ajax 使用起来比较麻烦,主要就是参数问题,比如到底使用GET 还是POST:到 底是使用同步还是异步等等,我们需要封装一个Ajax 函数,来方便我们调用.    封装支持接收来 ...

  7. springMVC解决跨域

    原文:https://www.cnblogs.com/shihaiming/p/9544060.html 介绍:   跨站 HTTP 请求(Cross-site HTTP request)是指发起请求 ...

  8. Linux_文件系统&磁盘分区

    目录 目录 前言 文件系统 目录结构 File文件标识符 文件系统修复指令 两种磁盘格式 MBR格式 GPT格式 磁盘分区 查看分区 分区的类型 分区最小存储单元 查看当前分区的block的大小 GP ...

  9. Whatever happens tomorrow, we've had today

    bathe: v. 用水清洗 resemblance:n. 相似.相像 cavity:n. 洞,孔,腔 stubborn: adj. 顽强的,固执的 stillness: n. 静止,沉静 tenth ...

  10. python每日一练:0001题

    第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? import o ...