V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
rv54ntjwfm3ug8
V2EX  ›  NGINX

如何在 Nginx 官方 Docker 镜像中使用 WebDAV?

  •  
  •   rv54ntjwfm3ug8 · 2021-05-11 14:00:02 +08:00 via iPhone · 2546 次点击
    这是一个创建于 1053 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看起来官方镜像没有 ngx_http_dav_module 这个模块,找到对应的 Dockerfile 改了很久也没把这个模块编译进去。
    4 条回复    2021-05-11 14:34:36 +08:00
    onikage
        1
    onikage  
       2021-05-11 14:18:11 +08:00   ❤️ 2
    ngx 里面的这个模块就是个残废, 前几天刚折腾的, 根本不是完整实现, 连 windows 自带的 explorer 都支持不全, 还得外挂一个什么扩展模块. 这个扩展模块我记得也是好几年没更新代码了. 还是别折腾了.
    给你推荐个省事的, caddyserver, 勾选 webdav 模块. 直接是 go 语言自带的 webdav 包实现, 很完整. 你要是喜欢自己写也行, go 语言调个包编译一把也就二三十行代码.
    另外在低性能设备, 比如树莓派 4 上, ngx 里面开启 tls 后只有 18M 左右的传输速度, cpu 还彪的老高, caddyserver 能稳定在 38M 左右, 不开 tls 直接满速.
    lerry
        2
    lerry  
       2021-05-11 14:21:29 +08:00
    FROM debian:buster

    RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
    RUN sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list

    RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    nginx \
    nginx-extras \
    apache2-utils && \
    rm -rf /var/lib/apt/lists

    VOLUME /media
    EXPOSE 80

    COPY entrypoint.sh /
    RUN chmod +x entrypoint.sh

    CMD /entrypoint.sh && nginx -g "daemon off;"












    我用的这个
    lerry
        3
    lerry  
       2021-05-11 14:25:00 +08:00
    对应 nginx 配置

    server {
    listen 80;

    access_log /dev/stdout;
    error_log /dev/stdout info;


    location / {
    client_max_body_size 0;
    create_full_put_path on;
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime on;
    charset utf-8;

    dav_methods PUT DELETE MKCOL COPY MOVE;
    dav_ext_methods PROPFIND OPTIONS;
    dav_access user:rw group:rw all:rw;

    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/htpasswd;

    root /media/;
    }
    }




    然后 nginx.conf 第一行 user root; 这样可以避免没有权限的问题,可能有安全隐患,不过我不在乎,我是在内网看电影用的
    sidkang
        4
    sidkang  
       2021-05-11 14:34:36 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4522 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 1006ms · UTC 10:00 · PVG 18:00 · LAX 03:00 · JFK 06:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.