miniserve替代nginx和Apache的绝佳方案|列目录工具

由于本人需要将一些资料转移,主要是工作用的资料,害怕给大家分享资源的时候没注意丢出去就火了,所以特地剥离出来,大概20多个G吧,本来准备存到自己的nextcloud里面的,但是感觉主要是备份用,下载起来不太方便,所以便有了个搭建个nginx,直接列出来下载会比较方便(最好可以支持加密打包),百度了一圈方案比较多,不过最终在荒岛大佬的博客上看到了一个绝佳的方案。

我在buyvm有一台archlinux的小鸡,平时专门用来下载一些迅雷下不动的资源拖回本地。

之前就随便搭了个nginx用来列目录方便idm拖回本地,只到发现了这个miniserve,我就用它替代掉了nginx。

就和它的名字一样,这个小工具非常轻量,支持的功能还很多:身份验证/文件上传/打包下载/二维码扫描等等。

我之前就是偷懒用的nginx列目录,因为配置起来很简单:

server {
   listen 80;
   server_name example.com;
   charset utf-8;
   root /storage;
   autoindex on;
}

但是后面用了一段时间就发现经常因为目录权限不对导致访问不到文件的问题。总不可能把nginx放到root下面跑吧。。所以也就一直这样凑合着用。。

当然列目录的工具还有很多,最懒的方法是用python自带的http服务器:

python3 -m http.server

但是这个东西性能不咋地,idm多线程100M带宽都跑不满,也只能偶尔应下急。

还有一些其他的列目录程序,比如h5ai,这东西是php写的,搭建起来就不是很方便了。

哎,不多废话了,总之我就是来安利miniserve的,这里我使用supervisor来守护miniserve进程:

pacman -S supervisor wget 
systemctl start supervisord
systemctl enable supervisord

由于我这个是archlinux的系统,所以supervisor的配置和其他系统有点差异,如果你会配置的话,可以用systemd来代替supervisor。

下载miniserve二进制文件:

mkdir -p /opt/miniserve && cd /opt/miniserve
wget https://github.com/svenstaro/miniserve/releases/download/v0.9.0/miniserve-v0.9.0-linux-x86_64 -O miniserve

新建一个supervisor的配置文件:

nano /etc/supervisor.d/miniserve.ini

写入如下配置:

[program:miniserve]
priority=1
directory=/opt/miniserve
command=/opt/miniserve/miniserve -r -z -u -q -p 8080 -a imlala:password /storage
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisor/miniserve.log

后面的/storage是你要列的目录路径,也可以是单个文件的路径,miniserve一些可配置的参数:

-r # 开启tar打包
-z # 开启zip打包
-u # 允许上传文件
-q # 二维码支持
-p # 指定端口号
-a # 身份验证

还有一些参数可以参考官方的介绍:

https://github.com/svenstaro/miniserve

更新supervisor配置即可完成配置:

supervisorctl update

《miniserve替代nginx和Apache的绝佳方案|列目录工具》

原文链接:传送门

发表回复