0,使用nginx自带功能 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@stark download] server { listen 8888; server_name _; location / { root /download; //*下载站根目录 autoindex on; //*开启目录浏览功能 autoindex_localtime on; autoindex_exact_size off; //*on为以bytes显示文件大小,off为使用单位来显示(K,M,G) autoindex_format html; //*以html的方式显示页面 charset utf-8,gbk; //*支持显示中文 } }
创建以下一系列文件 访问该网页看一下效果 网易云的镜像网站,可以看到基本上是一样的了 下载站的功能是实现了,可是看起来好单(low)调(bi)啊!
1,下面让我们美化一下下载站的页面吧! 1 2 3 4 yum install gcc gcc-c++ pcre-devel zlib-devel openssl-devel -y git clone https://github.com/aperezdc/ngx-fancyindex.git /tmp/fancyindex wget -P /tmp http://nginx.org/download/nginx-1.17.6.tar.gz cd /tmp/nginx-1.17.6
2,全新编译安装nginx 1 2 3 4 ./configure --prefix=/usr/local/nginx --add-module=../fancyindex && make && make install **如果你的服务器已经存在编译好的nginx,那么请看下面这个** ./configure --prefix=/usr/local/nginx {你之前nginx使用的模块都要加上} --add-module=../fancyindex && make cp -a /tmp/nginx-1.17.6/objs/nginx 之前的nginx安装路径,例如: /usr/local/nginx/sbin/nginx
验证是否支持fancyindex模块
3,配置fancyindex主题 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 cd /downloadgit clone https://github.com/Naereen/Nginx-Fancyindex-Theme.git //*下载主题文件 mv Nginx-Fancyindex-Theme/Nginx-Fancyindex-Theme-light/ ./ //*将其中的light主题复制到网页根目录[root@stark download] server { listen 8888; server_name _; location / { root /download; autoindex on; autoindex_localtime on; autoindex_exact_size off; autoindex_format html; charset utf-8,gbk; fancyindex on; fancyindex_exact_size off; fancyindex_localtime on; fancyindex_header "/Nginx-Fancyindex-Theme-light/header.html" ; //*指定主题页头 fancyindex_footer "/Nginx-Fancyindex-Theme-light/footer.html" ; //*指定主题页脚 fancyindex_ignore "Nginx-Fancyindex-Theme-light" ; //*指定忽略的目录或文件 fancyindex_name_length 255; } }
最终实现效果!
4,下面我们来尝试下载一下文件 这个文件下载没问题 阿喂,怎么变成这样了?好难过,这不是我要的那种结果!
5,解决下载某些文本文件直接打开的问题! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@stark download] server { listen 8888; server_name _; location / { if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$) //*以这些后缀结尾的文件都给我老老实实的下载! { add_header Content-Disposition attachment; } root /download; autoindex on; .................. .................. } /usr/local/nginx/sbin/nginx -sreload //*重载nginx配置文件