Nginx 做 webdav, obsidian remote-save 出现 405 状态码

2023-10-12 10:12:14 +08:00
 Alliot

如题,使用 nginx 部署的 webdav 在同步 obsidian 的时候出现 405 的状态码,测试了一圈没能找到解决方法,神通广大的 V 油有没有遇到过同样问题的?

配置如下:

      location / {
         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 LOCK UNLOCK;

           dav_access user:rw group:rw all:r;

           client_body_temp_path   /tmp/nginx/client-bodies;

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

           root /data/;
      }

error log:

[error] 136638#0: *26 mkdir() "/data/webdav/obsidian/_posts/.obsidian" failed (17: File exists), client: xxxx, server: xxxxx, request: "MKCOL /webdav/obsidian/_posts/.obsidian/ HTTP/2.0", host:xxxx

1741 次点击
所在节点    NGINX
13 条回复
ysc3839
2023-10-12 12:25:56 +08:00
可以参考这里面的配置试试 https://her01n.com/2021/05/13/webdav-server-with-nginx/
其中的 if rewrite 可能有改进空间,不过访问量不大的话不改也不怎么影响性能
SenLief
2023-10-12 13:42:46 +08:00
用 s3 吧,稳定一些。
Alliot
2023-10-12 14:00:38 +08:00
@ysc3839 #1 感谢回复, 这个我测试过,依旧有这个问题。

不过我使用这个 fork 的仓库编译 nginx 后,没有再出现这个问题:
https://github.com/mid1221213/nginx-dav-ext-module

nginx-dav-ext-module 这个拓展模块没有正确的对 . 开头的文件处理:
https://github.com/arut/nginx-dav-ext-module/issues/41
nullboy
2023-10-12 17:32:49 +08:00
为啥不用 alist ,自己用 nginx 配 webdav 多麻烦
cest
2023-10-12 17:55:10 +08:00
remote-save 还有其他问题

不用 nginx 用 dufs 一样,开始好好的,同步几次后就开始 4xx
ysc3839
2023-10-12 17:58:26 +08:00
@nullboy 没用过 alist ,但以前用过一个 Golang 写的 webdav 服务端,本地用 IDM 多线程下载,速度会越来越慢,然后发现 webdav 进程 CPU 占用极高,停止下载后也不会降低,且后续请求完全没响应,于是就改成用 nginx 了,并没有出现上述问题,也不想再花时间测试各类 webdav 服务端了。
Pika666
2023-10-12 18:41:35 +08:00
摸鱼看到熟悉的身影 (★> U <★)
lovelylain
2023-10-12 18:58:35 +08:00
if ($request_method = MKCOL) {
rewrite ^(.*[^/])$ $1/;
}
TabGre
2023-10-12 18:59:52 +08:00
我用 onedrive 同步
lovelylain
2023-10-12 21:06:18 +08:00
@Alliot 用 nginx 做 webdav ,网上的代码都不完美,除了.开头这个问题,还有一个问题也要自己解决,好像是符号链接指向一个不存在的文件时
Alliot
2023-10-12 23:09:44 +08:00
@lovelylain #8 这个已经是测试过的,亲测无效
Alliot
2023-10-12 23:10:10 +08:00
@Pika666 #7
Alliot
2023-10-12 23:46:45 +08:00
@lovelylain #10 暂时我这种方式处理下来几个不同的软件的同步都正常, 类似 dufs 、gowebdav 等都有大大小小的问题,所以暂时先用它了。

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

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

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

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

© 2021 V2EX