zoukankan      html  css  js  c++  java
  • Nginx配置下载站点

    一 下载站点

    1.1 下载站点配置

    语法:autoindex on | off;
    默认值:autoindex off;
    配置段:http,server,location
     
    Nginx默认不允许列出整个目录浏览,需要如下配置:
    [root@master ~]# mkdir /download
    #创建Nginx服务端下载目录
    [root@master ~]# cp /etc/nginx/conf.d/default.conf /download/   #创建测试文件
    [root@master download]# vi /etc/nginx/conf.d/down.conf
    server {
        listen       80;
        server_name  192.168.1.220;
        location    /down {
        alias   /download;
        access_log  /var/log/nginx/down.access.log  main;
        error_log   /var/log/nginx/down.error.log  warn;
        autoindex on;
        autoindex_localtime on;
        autoindex_exact_size off;
        charset utf-8,gbk;
    
        if ($request_filename ~* ^.*?.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx|conf)$)
        {add_header Content-Disposition 'attachment;';}
        }
    }
    [root@master download]# nginx -t -c /etc/nginx/nginx.conf   #检查配置文件
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    [root@master download]# nginx -s reload   #重载配置文件
    释义:
    autoindex on:on开启目录浏览
    autoindex_exact_size off:修改为off,以KB、MB、GB显示文件大小,默认为on,以bytes显示出⽂件的确切⼤⼩。
    autoindex_localtime on:显示的⽂件时间为⽂件的服务器时间。默认为off,显示的⽂件时间为GMT时间。
    charset utf-8,gbk:默认中文目录乱码,需要添加此行解决乱码问题。
    注意:
    1:展示目录选择使用alias而不是root
    原因是alias默认不会拼接location后面的/down,而root会进行拼接,即若写为root /download,实际展示的目录是/download/down,因此如上选择alias更为合适。
    2:添加了对$request_filename内置变量的if判断
    目的是为了让txt等文件进行下载而不是浏览,如果不做此配置,点击目录下的txt文件,大部分浏览器默认是直接浏览而非下载。此处通过添加响应头来控制:
    Content-Disposition:该属性有两种类型:inline 和 attachment;
    • inline :将文件内容直接显示在页面
    • attachment:弹出对话框让用户下载

    1.2 测试验证

    [root@master nginx]# cp -r /etc/nginx/ /download/
    [root@master nginx]# cd /download/
    [root@master download]# ls
    default.conf  nginx

  • 相关阅读:
    在监控落地的路上,助你一臂之力
    一文讲透数据结构中的树,建议收藏!
    别人家的 InfluxDB 实战 + 源码剖析
    从 React 架构开始讲解 useState、useEffect 编程设计
    事件捕获、事件冒泡、事件委托
    JavaScript设计模式学习笔记
    复制到剪贴板,粘贴进微信,换行符失效
    curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
    nodejs版本管理工具n教程
    手把手教你撸一套Redux(Redux源码解读)
  • 原文地址:https://www.cnblogs.com/liujunjun/p/14020319.html
Copyright © 2011-2022 走看看