GameMale
登陆 / 注册 搜索

USERCENTER

SEARCHSITE

搜索

查看: 80|回复: 7
收起左侧

[技巧科普] 【异界方块】折腾服务器第二弹——在 1Panel 上部署自己的 WebDAV

[复制链接] |关注本帖

组件大师

至尊巴哈姆特自定义男从Homunculus男巫之歌内森·德雷克『私有海域』裸体克里斯双向圣杯:焕然意志小小舞台御医神兔永浴爱河

     楼主| 墨燝 发表于 6 小时前 | 显示全部楼层 |阅读模式 <
    上一篇写了 SSH 登录服务器和安装1Panel 面板。
    装好面板之后,服务器就不只是一个“能连上的机器”了,后面就可以开始放一些真正有用的小服务了。
    这一篇先写一个比较轻量、但我觉得很实用的东西:WebDAV。
    简单来说,WebDAV可以理解成一个可以通过网络访问的文件目录。它不一定适合当完整网盘来用,但很适合做一些小型配置文件的同步。
    比如多个设备之间同步软件设置、同步一些本地配置、保存小文件,都会比较方便。
    这篇主要包括:

    • 从零构建一个 WebDAV Docker 镜像
    • 在 1Panel 上部署这个 Docker 服务
    • 给 WebDAV 开启反向代理和 HTTPS
    • 同步配置的实际用途

    一、为什么要自己搭 WebDAV
    其实 WebDAV 不一定要自己从零搭。
    如果只是想要一个“能同步文件”的东西,也可以直接使用一些现成工具,比如:
    AList
    Nextcloud
    但问题是服务器本身的硬盘容量不会特别大,当网盘用不够,因此尝试这个轻量化的方案。

    二、准备 Dockerfile
    先准备一个 Dockerfile,用Apache httpd 开启 WebDAV 模块。
    这里注意,下面的域名、用户名、密码都只是示例,实际使用时换成自己的。
    FROM httpd:2.4
    RUN sed -i \
        -e 's/^#LoadModuledav_module/LoadModule dav_module/' \
        -e 's/^#LoadModuledav_fs_module/LoadModule dav_fs_module/' \
        -e 's/^#LoadModuleauth_digest_module/LoadModule auth_digest_module/' \
        -e 's/^#LoadModuleauth_basic_module/LoadModule auth_basic_module/' \
        -e 's/^#LoadModuleauthn_file_module/LoadModule authn_file_module/' \
        /usr/local/apache2/conf/httpd.conf
    RUN mkdir -p/usr/local/apache2/var /var/lib/dav/data \
        && printf '%s\n' \
    'ServerName webdav.example.com' \
    '' \
    'DavLockDB "/usr/local/apache2/var/DavLock"' \
    '' \
    'Alias /dav "/var/lib/dav/data"' \
    '' \
    '<Directory "/var/lib/dav/data">' \
    '    Dav On' \
    '    Options Indexes FollowSymLinks' \
    '    IndexOptions Charset=utf-8' \
    '' \
    '    AuthType Basic' \
    '    AuthName "WebDAV"' \
    '    AuthUserFile"/user.passwd"' \
    '' \
    '    Require valid-user' \
    '</Directory>' \
    > /usr/local/apache2/conf/extra/webdav.conf \
        && echo 'Includeconf/extra/webdav.conf' >> /usr/local/apache2/conf/httpd.conf
    这里简单解释一下:
    dav_module 和dav_fs_module 是 WebDAV 相关模块。
    auth_basic_module 和authn_file_module 用来做用户名密码验证。
    /var/lib/dav/data是实际存放文件的目录。
    /dav 是 WebDAV 的访问路径。
    也就是说,之后访问的地址大概会是:
    当然,这里的webdav.example.com 要换成自己的域名。
    三、准备用户名和密码文件
    上面的配置里有一行:
    AuthUserFile"/user.passwd"
    这说明 WebDAV 登录时会读取/user.passwd 这个文件。
    我们可以用 htpasswd生成用户名和密码。
    比如用户名是webdav_user,可以执行:
    docker run --rmhttpd:2.4 htpasswd -Bbn webdav_user "这里换成你的强密码" > user.passwd
    生成之后,会得到一个 user.passwd文件。
    这个文件后面需要挂载到容器里面。
    这里建议密码尽量复杂一点,不要使用常用密码。因为WebDAV 后面是要暴露到公网的,弱密码风险比较高。

    四、准备 docker-compose.yml
    接下来写一个docker-compose.yml。
    比如可以这样:
    version:"3.8"

    services:
      webdav:
        build: .
        image: mydav
        container_name: mydav
        restart: unless-stopped
        ports:
          - "127.0.0.1:18080:80"
        volumes:
          - /home/ubuntu/webdav:/var/lib/dav/data
          -/home/ubuntu/webdav-lock:/var/lib/dav/lock
          -/opt/1panel/apps/webdav/user.passwd:/user.passwd:ro

    这里有几个地方需要注意。
    第一,/home/ubuntu/webdav 是实际存放 WebDAV 文件的目录。
    第二,/opt/1panel/apps/webdav/user.passwd是刚刚生成的密码文件。
    第三,端口这里写的是:
    127.0.0.1:18088:80
    意思是只把服务暴露在服务器本机的18088 端口上,而不是直接暴露到公网。
    之后我们会通过 1Panel的反向代理访问它。
    这样做的好处是:外部用户不能直接访问服务器IP:18088,只能通过配置好的域名和 HTTPS入口访问。
    五、在 1Panel 中部署 Docker 服务
    接下来进入 1Panel。
    可以在“容器”或者“应用 /编排”相关的位置,新建一个 Compose 项目。
    大概流程是:

    • 创建一个项目目录
    • 上传或写入 Dockerfile
    • 上传或写入 docker-compose.yml
    • 上传 user.passwd 文件
    • 创建 data 目录
    • 启动 Compose 项目
    如果一切正常,服务启动后,可以在容器列表里看到webdav 容器。

    六、在 1Panel 中开启反向代理
    接下来进入 1Panel 的“网站”功能。
    如果还没有安装OpenResty,需要先按提示安装。
    然后新建网站,类型选择“反向代理”。
    填写你的主域名:
    webdav.example.com
    和代理地址:
    创建之后,再给这个网站申请 HTTPS 证书。
    证书申请成功后,建议开启强制 HTTPS。
    七、WebDAV 可以用来同步什么
    WebDAV最大的用途是同步“小而重要”的配置。
    1. 同步 Netcatty 的设置
    上一篇写 SSH 的时候用到了Netcatty。
    如果多台电脑都在用 SSH客户端,那么主机列表、终端配置、连接设置这些东西就有同步需求。
    这时 WebDAV就可以作为一个配置同步后端。
    2. 同步 CC Switch 的配置
    如果使用 CC Switch管理一些模型服务商和本地设置,也会有多设备同步的需求。

    3. 同步梯子的本地设置
    还有一些本地代理工具、订阅转换工具、规则配置,也可能会有跨设备同步需求。
    这类东西一般不大,但手动复制很烦。
    这样换电脑、重装系统,或者多设备共用时,就不用到处找配置文件了。
    到这里,一个简单的 WebDAV服务就搭好了。
    这次的思路大概是:
    先用 Dockerfile 构建一个Apache WebDAV 镜像
    再用 1Panel 部署 Docker 服务
    然后通过 1Panel 反向代理绑定域名和HTTPS
    最后把它作为小型配置同步空间使用
    它不一定适合当完整网盘,但是很适合做“配置同步中转站”。
    比如 SSH 客户端配置、CC Switch配置、本地代理工具配置、一些小脚本和规则文件,都可以放在这里同步。
    服务器折腾到这里,就已经不只是“开了一台机器”了,而是开始变成一个自己的小型基础设施。
    后面如果继续写的话,可以再折腾一点更实际的东西,比如部署Vaultwarden、搭个人网站、做文件管理,或者给这些服务统一配置 HTTPS 和反向代理。




    来自群组: 泥潭療養院

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复

    使用道具 举报

    内在卢西亚诺‧科斯塔岛田半藏人到中年杰西·麦克雷莱因哈特·威尔海姆塞拉斯迪恩‧温彻斯特

      天恩 发表于 5 小时前 | 显示全部楼层 <
      回复

      使用道具 举报

        商人弗霖 发表于 5 小时前 | 显示全部楼层 <
        商人弗霖打开异界的百宝袋,袋口微光一闪,一枚【蓝色方块】轻巧地蹦了出来。
        回复

        使用道具 举报

        牧羊人草莓奶霜筒灵光补脑剂青苹果飘飘神秘商店贵宾卡没有梦想的咸鱼

          aaawwwww 发表于 5 小时前 | 显示全部楼层 <
          回复

          使用道具 举报

          紫粹露饮瑰香蜜露『开心果奶酥』黑神话:悟空GM論壇初心者畢業證書都市:天际线2

            ytujnq 发表于 5 小时前 | 显示全部楼层 <
            回复

            使用道具 举报

            人到中年内森·德雷克适当显灵塞拉斯充能的魔仙棒狮醒山河雄躯的昇格王者之盾霍格沃兹魔法学校

              少炎明神 发表于 4 小时前 | 显示全部楼层 <
              @。@已经开始听不懂,部署这么难的吗
              好难啊,我觉得我如果要网盘的话,我真的会选择买个成品NAS了
              回复

              使用道具 举报

              保卫领土虚空之海的鲸金钱马车神奇宝贝图鉴鎏彩万幢

                yota 发表于 3 小时前 | 显示全部楼层 <
                回复

                使用道具 举报

                石肤术雷霆晶球『领甜甜圈』敖蜃星炼金之心召唤古代战士艾吉奥岛田半藏诺克提斯·路西斯·伽拉姆萨菲罗斯

                  2302594 发表于 半小时前 | 显示全部楼层 <
                  回复

                  使用道具 举报

                  您需要登录后才可以回帖 登录 | 立即注册

                  本版积分规则

                  关闭

                  站长公告上一条 /1 下一条

                  文字版|手机版|小黑屋|GameMale

                  GMT+8, 2026-6-10 07:54 , Processed in 0.111210 second(s), 74 queries , Redis On.

                  Copyright © 2013-2026 GameMale

                  All Rights Reserved.

                  快速回复 返回列表