如题,使用 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
1
ysc3839 2023-10-12 12:25:56 +08:00 via Android 1
可以参考这里面的配置试试 https://her01n.com/2021/05/13/webdav-server-with-nginx/
其中的 if rewrite 可能有改进空间,不过访问量不大的话不改也不怎么影响性能 |
2
SenLief 2023-10-12 13:42:46 +08:00 via iPhone
用 s3 吧,稳定一些。
|
3
Alliot OP @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 |
4
nullboy 2023-10-12 17:32:49 +08:00
为啥不用 alist ,自己用 nginx 配 webdav 多麻烦
|
5
cest 2023-10-12 17:55:10 +08:00
remote-save 还有其他问题
不用 nginx 用 dufs 一样,开始好好的,同步几次后就开始 4xx |
6
ysc3839 2023-10-12 17:58:26 +08:00 via Android
@nullboy 没用过 alist ,但以前用过一个 Golang 写的 webdav 服务端,本地用 IDM 多线程下载,速度会越来越慢,然后发现 webdav 进程 CPU 占用极高,停止下载后也不会降低,且后续请求完全没响应,于是就改成用 nginx 了,并没有出现上述问题,也不想再花时间测试各类 webdav 服务端了。
|
7
Pika666 2023-10-12 18:41:35 +08:00
摸鱼看到熟悉的身影 (★> U <★)
|
8
lovelylain 2023-10-12 18:58:35 +08:00 via Android
if ($request_method = MKCOL) {
rewrite ^(.*[^/])$ $1/; } |
9
TabGre 2023-10-12 18:59:52 +08:00 via iPhone
我用 onedrive 同步
|
10
lovelylain 2023-10-12 21:06:18 +08:00 via Android
@Alliot 用 nginx 做 webdav ,网上的代码都不完美,除了.开头这个问题,还有一个问题也要自己解决,好像是符号链接指向一个不存在的文件时
|
11
Alliot OP @lovelylain #8 这个已经是测试过的,亲测无效
|
13
Alliot OP @lovelylain #10 暂时我这种方式处理下来几个不同的软件的同步都正常, 类似 dufs 、gowebdav 等都有大大小小的问题,所以暂时先用它了。
|