005.Nginx配置下載站點
- 2020 年 7 月 9 日
- 筆記
- Nginx, 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 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 [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 測試驗證
瀏覽器訪問://download.linuxds.com/down/
//download.linuxds.com/down/nginx/