安装File Browser及配置Nginx

环境:Debian10+Nginx/1.14.2+tls

在搭建好基于nginx的webdav服务后,发现几个挂载的bug,比如不能新建文件夹、不能重命名文件夹、不能显示名称中含中括号对"[]"的文件夹或文件。又不能舍弃webdav方便同步,无奈只好找到File Browser弥补缺陷了。

File Browser安装

官方地址:https://filebrowser.xyz/

快速安装

curl -fsSL https://filebrowser.xyz/get.sh | bash

快速启动File Browser

参数分别是监听地址(-a)、端口(-p),文件索引根目录(-r),数据库存放路径(-d)
filebrowser -a 127.0.0.1 -p 8888 -r /path/to/file -d /path/to/filebrowser.db
此时即可以http://<ip>:8888 访问,管理员用户名和密码均为admin。

开机自启

运行command="-a 127.0.0.1 -p 8888 -r /path/to/file -d /path/to/filebrowser.db"
以及:

cat > /etc/systemd/system/filebrowser.service <<EOF
[Unit]
Description=filebrowser
After=network.target

[Service]
Type=simple
ExecStart=$(command -v filebrowser) $command
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

重载服务配置及运行:

systemctl daemon-reload
systemctl start filebrowser
systemctl enable filebrowser
systemctl status filebrowser

Nginx 反向代理配置

由于此vps已配置基于nginx+ws+tls的v2fly服务,索性尝试nginx反代File Browser服务。

添加location段,配置如下:

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  example1.com www.example1.com;
        rewrite      ^(.*)$ https://example2.com$1 permanent;
            }
server {
  listen  443 ssl http2;
  listen  [::]:443 ssl http2;
  ssl on;
  ssl_certificate       /path/to/ecc.crt;
  ssl_certificate_key   /path/to/ecc.key;
  ssl_certificate       /path/to/rsa.crt;
  ssl_certificate_key   /path/to/rsa.key;
  ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers           HIGH:!aNULL:!MD5;
  root                  /var/www/html;
  index                 index.html index.htm;
  charset               utf-8;
  server_name           example2.com;
        # filebrowser
        location /filebrowser/ {
        client_max_body_size                0;
        proxy_read_timeout                  10s;
        proxy_send_timeout                  10s;
        proxy_set_header                    X-Forwarded-Host $host;
        proxy_set_header                    X-Forwarded-Server $host;
        proxy_set_header                    X-Real-IP $remote_addr;
        proxy_set_header                    Host $host;
        proxy_set_header                    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_http_version                  1.1;
        proxy_redirect                      off;
        proxy_set_header                    Upgrade $http_upgrade;
        proxy_set_header                    Connection "upgrade";
        proxy_pass                          http://127.0.0.1:8888/;
        }    
       
  error_page 404 /404.html;
  location = /40x.html {
        }
    }

重载nginx服务:

service nginx reload
service nginx restart
service nginx status

此时即可访问http://example2.com/filebrowser/ 管理文件。