如何在 Nginx 官方 Docker 镜像中使用 WebDAV?
- 0次
- 2021-05-18 20:15:54
- idczone
看起来官方镜像没有 ngx_h美国服务器ttp_dav_module 这个模块,找到对应的 Dockerfile 改了很久也没把这个模块编译进去。
ngx 里面的这个模块就是个残废, 前几天刚折腾的, 根本不是完整实现, 连 windows 自带的 explorer 都支持不全, 还得外挂一个什么扩展模块. 这个扩展模块我记得也是好几年没更新代码了. 还是别折腾了.
给你推荐个省事的, caddyserver, 勾选 webdav 模块. 直接是 go 语言自带的 webdav 包实现, 很完整. 你要是喜欢自己写也行, go 语言调个包编译一把也就二三十行代码.
另外在低性能设备, 比如树莓派 4 上, ngx 里面开启 tls 后只有 18M 左右的传输速度, cpu 还彪的老高, caddyserver 能稳定在 38M 左右, 不开 tls 直接满速.
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;"
我用的这个
对应 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; 这样可以避免没有权限的问题,可能有安全隐患,不过我不在乎,我是在内网看电影用的
https://github.com/hacdias/webdav
个人在用的