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

2021-05-11 14:00:02 +08:00
 rv54ntjwfm3ug8
看起来官方镜像没有 ngx_http_dav_module 这个模块,找到对应的 Dockerfile 改了很久也没把这个模块编译进去。
2590 次点击
所在节点    NGINX
4 条回复
onikage
2021-05-11 14:18:11 +08:00
ngx 里面的这个模块就是个残废, 前几天刚折腾的, 根本不是完整实现, 连 windows 自带的 explorer 都支持不全, 还得外挂一个什么扩展模块. 这个扩展模块我记得也是好几年没更新代码了. 还是别折腾了.
给你推荐个省事的, caddyserver, 勾选 webdav 模块. 直接是 go 语言自带的 webdav 包实现, 很完整. 你要是喜欢自己写也行, go 语言调个包编译一把也就二三十行代码.
另外在低性能设备, 比如树莓派 4 上, ngx 里面开启 tls 后只有 18M 左右的传输速度, cpu 还彪的老高, caddyserver 能稳定在 38M 左右, 不开 tls 直接满速.
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
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
2021-05-11 14:34:36 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/776221

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX