У меня есть контейнер, на котором работает nginx с web dav. Когда я хочу загрузить новый файл (используя WinSCP), он запрашивает у меня подтверждение «перезаписи», хотя файл еще не существует. Почему это?
На nginx-сервере настроено:
server {
client_max_body_size 20M;
listen 80 default_server;
server_name _;
root /var/www/html;
location / {
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
dav_access user:rw group:rw all:rw;
autoindex on;
}
}
Он сообщает свою версию как:
root@ea96afa6f96d:/var/log/nginx# nginx -v
nginx version: nginx/1.18.0 (Ubuntu)
Вот журнал доступа, пока WinSCP запрашивает подтверждение:
172.17.0.1 - - [14/Aug/2022:21:19:08 +0000] "PROPFIND /foobar.txt HTTP/1.1" 207 257 "-" "WinSCP/5.17.10 neon/0.31.1"
и это журнал ошибок, указывающий, что файл действительно еще не существует:
2022/08/14 21:19:08 [alert] 10#10: *1 dav_ext stat failed on '/var/www/html/foobar.txt' (2: No such file or directory), client: 172.17.0.1, server: _, request: "PROPFIND /foobar.txt HTTP/1.1", host: "127.0.0.1:8082"
После того, как я подтвердил «перезапись», файл создается, и в журнале доступа есть следующие новые строки:
172.17.0.1 - - [14/Aug/2022:21:21:44 +0000] "PUT /foobar.txt HTTP/1.1" 201 0 "-" "WinSCP/5.17.10 neon/0.31.1"
172.17.0.1 - - [14/Aug/2022:21:21:44 +0000] "PROPPATCH /foobar.txt HTTP/1.1" 405 166 "-" "WinSCP/5.17.10 neon/0.31.1"
172.17.0.1 - - [14/Aug/2022:21:21:44 +0000] "PROPFIND / HTTP/1.1" 207 1585 "-" "WinSCP/5.17.10 neon/0.31.1"
(в журнале ошибок нет новых строк)
Та же ошибка возникает, когда я использую проводник Windows, поэтому я подозреваю, что это какая-то неправильная конфигурация в nginx. Как я могу это исправить?
nginx вебдав