005.Nginx配置下載站點
阿新 • • 發佈:2020-07-09
一 下載站點
1.1 下載站點配置
語法:autoindex on | off; 預設值:autoindex off; 配置段:http,server,locationNginx預設不允許列出整個目錄瀏覽,需要如下配置:
1 [[email protected] ~]# mkdir /download #建立Nginx服務端下載目錄
2 [[email protected] ~]# cp /etc/nginx/conf.d/default.conf /download/
3 [[email protected] ~]# cp /etc/nginx/ /download/ #建立測試檔案
1 [[email protected] ~]# 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
14 if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx|conf)$)
15 {add_header Content-Disposition 'attachment;';}
16 }
17 }
1 [[email protected] ~]# nginx -t -c /etc/nginx/nginx.conf #檢查配置檔案釋義: autoindex on:on開啟目錄瀏覽 autoindex_exact_size off:修改為off,以KB、MB、GB顯示檔案大小,預設為on,以bytes顯示出⽂件的確切⼤⼩。 autoindex_localtime on:顯示的⽂件時間為⽂件的伺服器時間。預設為off,顯示的⽂件時間為GMT時間。 charset utf-8,gbk:預設中文目錄亂碼,需要新增此行解決亂碼問題。 注意:2 [[email protected] ~]# nginx -s reload #過載配置檔案
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/![](https://796t.com/res/2020/07-09/08/1d9a4325f441762e0aabb4cdb7163bdf.jpg)
![](https://796t.com/res/2020/07-09/08/3d23f46235466bc50a62f462d7167b29.jpg)