侧边栏壁纸
博主头像
qiql博主等级

水能载舟,亦可赛艇

  • 累计撰写 33 篇文章
  • 累计创建 28 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

通过 Nginx 的文件映射搭建镜像下载站并采用 cloudreve 进行维护

qiql
2023-06-05 / 0 评论 / 1 点赞 / 218 阅读 / 1,630 字

零 概述

本文要解决的痛点是:

  1. 在不同的 Windows 电脑之间互传文件,只能通过 QQ,微信,网盘等工具
  2. 往 Linux 服务器上传输一个文件,只能通过 Xftp 等工具
  3. 在 Linux 服务器上下载某些软件的安装包的速度有时候很慢,有些常用的安装包源网站地址在境外,经常下载不下来
  4. 自己电脑太多,或者作品太多,有一些想共享的文件想长期放在某个网站上,供随时取用,不然每次都通过网盘分享很麻烦
  5. 想公网直接访问自己在 Linux 服务器上的文件,不想每次都通过Xftp

以上问题,可以通过利用 Nginx 来进行文件映射搭建一个私人的文件下载站点来解决!

我个人的镜像下载站为:https://mirrors.qiql.net 欢迎访问,但还请手下留情

一 安装Nginx

首先,推荐安装 fancyindex 模块,使镜像站可以更加美观,且具有搜索功能

下载地址:https://mirrors.qiql.net/pkgs/ngx-fancyindex-0.5.2.tar.xz

解压命令:tar -xvf ngx-fancyindex-0.5.2.tar.xz

如果没有安装过 Nginx,可以按照以下步骤进行安装:

# 获取nginx安装包
wget https://mirrors.qiql.net/pkgs/nginx-1.23.0.tar.gz

# 解压
tar -zxvf ../nginx-1.23.0.tar.gz 

cd nginx-1.23.0
# 安装必要的依赖
sudo yum -y install pcre-devel
sudo yum -y install openssl-devel

# 进行配置,--prefix 是指定安装路径,--with-http_ssl_module 是使得 Nginx 支持 https; --add-module 是给 nginx 添加支持 fancy 模块
./configure --prefix=/usr/local/nginx --with-http_ssl_module  --add-module=/path/to/ngx-fancyindex-0.5.1

# 编译 Nginx ,-j 默认使用机器上所有的核心,-j 2 可以只指定两个核心
make -j

# 进行安装,将编译得到的二进制文件和配置文件等拷贝到之前由--prefix 参数所指定的目录中去
make install

# 切换到 Nginx 的安装目录
cd /usr/local/nginx 

# 启动 Nginx
sudo  ./sbin/nginx

如果之前安装过 Nginx,进入到 Nginx 的源码目录,再按照以上配置重新 configure 即可,新编译得到的 nginx 二进制文件会覆盖掉原来的二进制可执行文件

安装了 fancyindex 模块之后,还需要下载一个主题:https://github.com/Naereen/Nginx-Fancyindex-Theme
然后在镜像站根目录下新建一个style目录,将主题解压至style目录。

在 nginx.conf 文件中进行如下配置:

    server {
        listen       80;
        server_name  mirrors.example.com;

        charset utf-8;

        access_log  logs/host.https.mirrors.qiql.net.access.log  main;
        location / {
            # root html;
            fancyindex on;
            root /opt/mirrors;   # 定义镜像下载站的根目录
            fancyindex_exact_size off; # 不显示精确大小
            fancyindex_localtime on;
            # 页面头 如下路径相对于网站根(/)而言的相对路径
            fancyindex_header /style/Nginx-Fancyindex-Theme-light/header.html;
            # 页尾
            fancyindex_footer /style/Nginx-Fancyindex-Theme-light/footer.html;
            charset utf-8;    #解决中文显示乱码问题
            # 忽略的文件夹/文件
            fancyindex_ignore "style";
            # fancyindex_ignore "README.md";
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
     }

修改完毕后,重载 nginx.conf 配置文件:./nginx -s reload

二 管理镜像站

通过以上步骤,一个镜像下载站点就已经建成了,但是维护稍显复杂,因为要把文件传输到指定的目录下才可以,如果使用 ftp 进行传输会很麻烦,本小节将介绍如何通过云盘服务将文件直接通过 Web 端传输到 Linux 服务器指定的目录下

2.1 安装 cloudreve

首先,需要安装 cloudreve,这是一个十分强大且开源的网盘应用程序。建议遵循官方文档进行安装,安装很简单:

cloudreve 官网:https://cloudreve.org/

cloudreve 搭建:https://docs.cloudreve.org/

安装包下载:https://mirrors.qiql.net/pkgs/cloudreve_3.5.3_linux_amd64.tar.gz

2.2 配置用户策略

以管理员身份登陆到网盘后台,点击右上角的头像 > 管理面板 > 存储策略 > 添加存储策略 > 选择本机存储

image-20230605225934756

存储目录这里填写被映射出去的目录的绝对路径

注意:重命名这里一定要选择不开启重命名

然后后面就都保持默认即可,也可以自行根据具体情况进行修改

2.3 配置用户组和用户

新建用户组:以管理员身份登陆到网盘后台,点击右上角的头像 > 管理面板 > 新建用户组 > 给用户组起名 > 存储策略选择刚刚创建的存储策略 > 选择创始容量,保存即可

新建用户:以管理员身份登陆到网盘后台,点击右上角的头像 > 管理面板 > 新建用户。新建用户这里的邮箱可以是一个不存在的邮箱,因为它仅仅是一个账号。在用户组处选择刚刚创建的用户组,保存即可。

然后,退出网盘的管理员账号,以刚刚创建的用户账号登陆云盘,传一个示例文件到网盘中,再进入到镜像站,即可看到刚刚上传的文件,这样就实现了仅通过 Web 服务维护镜像站的效果。

但是,由于存储策略的唯一性,如果想在镜像站下设立多个文件夹,只能多创建几个存储策略,给不同的存储策略分配不同的用户组和用户。因为 cloudreve 实际上是通过索引而不是挂载来实现的,即使在网盘中新建了目录,也不会在 Linux 服务器上对应的存储目录去真的新建对应的目录。所以如果要维护多个目录,暂时只能通过多个存储策略来实现。

值得注意的是:cloudreve 免费版中,每个用户组只能绑定一个存储策略,但是捐赠版中一个用户组是可以绑定多个存储策略的,所以如果觉得使用多个用户维护不同目录很麻烦,可以购买捐赠版。

1

评论区