nginx做文件服务器的优化

2022年6月13日 214点热度 0人点赞 0条评论

背景

目前大部分浏览器已经不支持ftp协议了,win11也移除了支持ftp的ie,那么现在使用ftp有几个方案:

  1. 使用资源管理器,但界面看起来就不太舒服了
  2. 使用cmd匿名登录或者wget下载指定文件,浏览文件不方便
  3. 使用第三方工具登录ftp或者下载ftp文件,浏览文件不方便

解决

其实下载ftp和查看ftp文件都还是支持的,只是更好的观赏性和便利性已经不支持了。而且ftp的重要功能是上传,对于内网大部分的用户而言他们都不需要上传,所以我们新增一个http协议吧,让下载/浏览/便利重新回归,此次使用nginx的文件下载功能。

nginx文件下载

nginx最小化的编译安装也是支持文件下载的,参数如下:

server {
    listen 80;
    location / {
        autoindex on;
        root html;
    }
}

这个配置满足了文件下载功能,但是有几个问题:中文文件名乱码,文件名超过一定字符显示不完整,再就是不够美观。所以采用开源模块fancy来解决此文件。

优化

fancy主体,此模块编译进nginx

https://github.com/aperezdc/ngx-fancyindex

主题优化代码

https://github.com/TheInsomniac/Nginx-Fancyindex-Theme

安装后更新为如下代码:

# 其中主题解压到了/var/ftp/pub/fancyindex,其他方法貌似访问有问题
# 前面三个参数功能nginx默认是支持的,把fancy改成auto就行了
server {
    listen 80;
    charset utf-8,gbk;
    location / {
            fancyindex on;
            fancyindex_localtime on;
            fancyindex_exact_size off;
            fancyindex_name_length 500;
            fancyindex_header "/fancyindex/header.html";
            fancyindex_footer "/fancyindex/footer.html";
            fancyindex_ignore "fancyindex";
            alias /var/ftp/pub/;
    }
}

yuc

这个人很懒,什么都没留下

error: Content is protected !!