• 首页
  • 搜索
  • 工具
  • 分类
  • 日志
  • 友链
  • 图片

It's Geek KingYoungy

KEEP CHALLENGE
服务器运维教程

在 Debian 服务器上部署 FileBrowser 并集成到现有博客路径

2025-04-22 浏览量 286 暂无评论

在 Debian 服务器上部署 FileBrowser 并集成到现有博客路径

前言

FileBrowser 是一个轻量级的 Web 文件管理器,可以让你通过浏览器轻松管理服务器上的文件。本文将详细介绍如何在已经运行博客的 Debian 服务器上,通过子路径 (/files) 方式部署 FileBrowser,并与现有 Nginx 和 Let's Encrypt 证书无缝集成。

准备工作

• 运行 Debian 的服务器

• 已安装 Docker 和 Docker Compose

• 已配置 Nginx 并运行博客(假设博客运行在 9000 端口)

• 已配置 Let's Encrypt SSL 证书

步骤 1:创建 FileBrowser 专用目录

mkdir -p ~/filebrowser/{data,database}
cd ~/filebrowser

步骤 2:编写 Docker Compose 文件

创建 docker-compose.yml 文件:

nano docker-compose.yml

内容如下:

version: '3'

services:
  filebrowser:
    image: filebrowser/filebrowser:latest
    container_name: filebrowser
    restart: unless-stopped
    volumes:
      - ./data:/srv  # 文件存储目录
      - ./database:/database  # 数据库目录
    ports:
      - "127.0.0.1:9001:80"  # 仅本地访问
    environment:
      - FB_BASEURL=/files  # 匹配 Nginx 的子路径

启动容器:

docker-compose up -d

步骤 3:初始化 FileBrowser 配置

方法一:使用默认账户登录

FileBrowser 默认会创建一个管理员账户:
• 用户名:admin

• 密码:admin

首次登录后应立即修改密码。

方法二:手动创建账户

# 初始化数据库
docker exec -it filebrowser filebrowser -d /database/filebrowser.db config init

# 设置根目录
docker exec -it filebrowser filebrowser -d /database/filebrowser.db config set --root /srv

# 创建管理员账户
docker exec -it filebrowser filebrowser -d /database/filebrowser.db users add 用户名 密码 --perm.admin

步骤 4:修改 Nginx 配置

编辑现有的博客 Nginx 配置文件(假设位于 /etc/nginx/sites-available/your_blog):

sudo nano /etc/nginx/sites-available/your_blog

在 server 块中添加以下配置:

server {
    listen 443 ssl;
    server_name yourdomain.com www.yourdomain.com;

    # 原有博客配置
    location / {
        proxy_pass http://localhost:9000;
        # 其他博客代理配置...
    }

    # 新增 FileBrowser 配置
    location /files/ {
        proxy_pass http://localhost:9001/;  # 注意结尾的斜杠
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # 认证相关头部
        proxy_set_header Authorization $http_authorization;
        proxy_pass_request_headers on;
        
        # 解决静态资源路径问题
        proxy_redirect / /files/;
        sub_filter_once off;
        sub_filter 'href="/' 'href="/files/';
        sub_filter 'src="/' 'src="/files/';
    }

    # Let's Encrypt SSL 配置
    ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}

测试并重载 Nginx:

sudo nginx -t
sudo systemctl reload nginx

步骤 5:验证安装

  1. 访问 https://yourdomain.com/files/
  2. 使用设置的用户名和密码登录
  3. 确认可以正常浏览和管理文件

高级配置

  1. 限制访问 IP

如果需要限制访问 IP,在 Nginx 配置中添加:

location /files/ {
    # 允许的IP段
    allow 192.168.1.0/24;
    allow 127.0.0.1;
    deny all;
    
    # 原有代理配置...
}
  1. 文件上传大小限制

增加 Nginx 的 client_max_body_size:

server {
    # ...
    client_max_body_size 10G;  # 允许上传最大10GB文件
}
  1. 优化 FileBrowser 配置

通过 Docker 环境变量优化:

environment:
  - FB_DISABLE_EDITOR=false  # 启用内置编辑器
  - FB_DISABLE_EXEC=false    # 允许执行命令
  - FB_DISABLE_PREVIEW_RESIZE=false  # 允许预览图片调整大小

常见问题解决

  1. 静态资源加载失败

确保 FileBrowser 的 baseURL 设置正确:

docker exec -it filebrowser filebrowser -d /database/filebrowser.db config set --baseurl /files
  1. 登录后立即退出

检查 Nginx 的 Cookie 设置:

proxy_cookie_path / "/files; Secure; HttpOnly; SameSite=Lax";
  1. 忘记管理员密码

重置密码:

docker exec -it filebrowser filebrowser -d /database/filebrowser.db users update admin -p newpassword

总结

通过本文的步骤,你已经成功:

  1. 使用 Docker 部署了 FileBrowser
  2. 通过子路径 /files 将其集成到现有博客
  3. 与现有的 Nginx 和 Let's Encrypt 证书配置无缝结合
  4. 设置了基本的用户管理和安全配置

现在你可以通过 https://yourdomain.com/files/ 安全地管理服务器文件了!

高等数学刷题心得
算法——查找

评论

  • 文章目录
  • 站点概览
    author

    38 日志
    7 分类
    Creative Commons
    • 热门文章
    • 热评文章
    • 随机文章
    • 在 Debian 服务器上部署 FileBrowser 并集成到现有博客路径
    • 高等数学重要定理总结
    • 高等数学重要定义整理
    • C语言原子量的使用
    • 数据结构——树
    • 欢迎使用 Typecho
    • 对底层IO的深度总结
    • 数据结构——树
    • 库、链接与执行
    • shell作业控制的两个问题:组长叛变与SIGHUP信号
    • ncurses库的使用总结
    • 深入理解pthread互斥量与条件变量的使用
    • 高等数学重要定义整理
    • 内存映射与内存锁详解
    • System V 消息队列总结

    浏览量 : 7461

    © 2025 It's Geek KingYoungy. Power By Typecho . Theme by Shiyi

    浙ICP备2025160639号  |  浙公网安备33020502001222号

    This is just a placeholder img.