005.Nginx配置下载站点

编程

一 下载站点

1.1 下载站点配置

语法:autoindex on | off;

默认值:autoindex off;

配置段:http,server,location


Nginx默认不允许列出整个目录浏览,需要如下配置:

  1 [root@nginx01 ~]# mkdir /download			#创建Nginx服务端下载目录

2 [root@nginx01 ~]# cp /etc/nginx/conf.d/default.conf /download/

3 [root@nginx01 ~]# cp /etc/nginx/ /download/ #创建测试文件

  1 [root@nginx01 ~]# vi /etc/nginx/conf.d/down.conf

2 server {

3 listen 80;

4 server_name download.linuxds.com;

5 location /down {

6 alias /download;

7 access_log /var/log/nginx/down.access.log main;

8 error_log /var/log/nginx/down.error.log warn;

9 autoindex on;

10 autoindex_localtime on;

11 autoindex_exact_size off;

12 charset utf-8,gbk;

13

14if ($request_filename ~* ^.*?.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx|conf)$)

15 {add_header Content-Disposition "attachment;";}

16 }

17 }

  1 [root@nginx01 ~]# nginx -t -c /etc/nginx/nginx.conf		#检查配置文件

2 [root@nginx01 ~]# 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 测试验证

浏览器访问:http://download.linuxds.com/down/

http://download.linuxds.com/down/nginx/

原文链接:https://www.cnblogs.com/itzgr/archive/2020/07/09/13271580.html

以上是 005.Nginx配置下载站点 的全部内容, 来源链接: utcz.com/z/518176.html

回到顶部