专栏首页后端技术探索nginx配置下载目录

nginx配置下载目录

很多场景下,我们需要对用户提供文件下载功能,比如不同版本的软件列表,或者对外提供的一些公开的报表下载。

例如linux提供的内核源码下载列表界面如下:

配置实战

需求描述

已有系统,服务端使用的是nginx服务器,域名为www.***.com,是一个php项目。现在要在该域名上实现一个文件下载的目录,所有要下载的文件都放到/home/havy/download/。

实现方案

在原有nginx配置中增加location模块,对www.***.com/attach访问路径设置为下载目录根目录/home/havy/download/,并且对该location块开启目录文件列表,详细配置如下:

server {
    listen              80;
    server_name         www.***.com;

    #此模块为新加配置    
    location ~ ^/attach { 
        root            /home/havy/webroot/;
        autoindex on;  # 开启目录文件列表
        autoindex_exact_size on;  # 显示出文件的确切大小,单位是bytes
        autoindex_localtime on;  # 显示的文件时间为文件的服务器时间
        charset utf-8,gbk;  # 避免中文乱码
    }

    location ~ ^/(favicon.ico|static) {
        root            /home/www/yuhaiwei/odp/webroot;
    }

    location ~ \.php$ {
        root            /home/havy/webroot;
        fastcgi_pass    $php_upstream;
        fastcgi_index   index.php;
        include         fastcgi.conf;
    }

    location / {
        root /home/havy/webroot;
        index index.php;
        fastcgi_pass    $php_upstream;
        include         fastcgi.conf;
        rewrite ^/([^/.]*)(/[^\?]*)?((\?.*)?)$ /$1/index.php$2$3 break;
    }
}

这样,当访问www.***.com/attach就展现出/home/havy/download/目录下文件列表了。

本文分享自微信公众号 - nginx(nginx-study)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一边制造,一边讲解http状态码502|504|499|500

    Status Code 499、500、502、504也是后端Http服务经常返回的状态码,试想一下,对于每个状态码,如果你能通过一些修改或配置来人为复现它,是...

    后端技术探索
  • 王者荣耀高并发背后的故事

    堪称中国最火爆的手机游戏“王者荣耀”,拥有亿级用户体量,千万级日活用户,如何快速、低成本地保障业务突发?本文从该问题出发,论述了问题对应的解决方案,并对其效果做...

    后端技术探索
  • 常用nginx配置项详解(一个简单的例子)

    核心提示:Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器...

    后端技术探索
  • kodexplorer安装

    个人觉得这个是最好的网盘系统,没有之一,首先可以直接浏览服务器中的文件,其次还支持一些文件直接打开,web界面也做得很流畅,占用的内存也很小,不需要依赖第三方数...

    bboysoul
  • get_template_part()调用自定义模板|wordpress函数

      我们在用wordpress开发主题的时候,可能需要调用一段固定的代码比如左侧菜单,这段代码会在主页、栏目页、文章页用到,如果直接写入每个页面模板是没有问题,...

    ytkah
  • Python中namedtuple使用

    致Great
  • npm更新和nodejs更新

    更新Nodejs自身。一直依赖我都是下载最新版的源码,然后make install,及其繁琐。其实只需要运行以下2个命令即可:

    lilugirl
  • 详解Nginx location 匹配规则

    本篇文章主要介绍了Nginx location 匹配规则,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    习惯说一说
  • Remove Duplicates from Sorted Array II

    青木
  • Remove Duplicates from Sorted Array

    青木

扫码关注云+社区

领取腾讯云代金券