Re: webdav запись файла по другому root в случае если закончилось место

Илья Шипицин chipitsine на gmail.com
Пт Мар 18 05:25:17 UTC 2016


не так давно пробегал пример, как webdav подружить с lua, чудеса уровня
тех, про которые вы говорите

https://forum.nginx.org/read.php?21,259941,259941

16 марта 2016 г., 20:04 пользователь Иван Мишин <simplebox66 на gmail.com>
написал:

> Добрый день!
>
> Вопрос следующий:
> Есть nginx 1.8.1, на нем настроен вебдав. Конфиг простой
>
>>  server {
>>         listen 80;
>>         server_name     testdav;
>>
>>        access_log /var/log/nginx/testdav_access.log main;
>>        error_log /var/log/nginx/testdav_error.log error;
>>                 location / {
>>                 root /tmp/ram/testdav;
>>                 open_file_cache off;
>>                 client_max_body_size 1000m;
>>                 dav_methods PUT;
>>                 dav_access user:rw group:r all:r;
>>                 create_full_put_path on;
>>         }
>
> В случае когда nginx записывает файл в  /tmp/ram/testdav и там кончается
> место, хочется сделать так чтобы nginx этот файл записал в другое место
> /tmp2/ram/testdav.
> Есть идеи как это реализовать?
> В случае нехватки места nginx отдает 500 ошибку. пробовал конфиг
>
>> server {
>>         listen 80;
>>         server_name     testdav;
>>
>>        access_log /var/log/nginx/testdav_access.log main;
>>        error_log /var/log/nginx/testdav_error.log error;
>>
>>         location / {
>>                          error_page      500 = @e500;
>>
>>                 root /tmp/ram/testdav;
>>                 open_file_cache off;
>>                 client_max_body_size 1000m;
>>
>>                 dav_methods PUT;
>>                 dav_access user:rw group:r all:r;
>>                 create_full_put_path on;
>>         }
>>
>>         location @e500 {
>>                  root /tmp2/ram/testdav;
>>                 open_file_cache off;
>>                 client_max_body_size 1000m;
>>                 dav_methods PUT;
>>                 dav_access user:rw group:r all:r;
>>                 create_full_put_path on;
>>         }
>> }
>
>
> Но не работает, в логах:
>
>> 2016/03/16 17:40:20 [alert] 15872#0: *1 write() has written only 24576 of
>> 2338816 to /tmp/ram/testdav/tengine.tar.0000000002, client: 127.0.0.1,
>> server: testdav, request: "PUT /tengine.tar HTTP/1.1", host: "testdav"
>> 2016/03/16 17:40:20 [crit] 15872#0: *1 chmod()
>> "/var/cache/nginx/client_temp/0000000001" failed (2: No such file or
>> directory), client: 127.0.0.1, server: testdav, request: "PUT /tengine.tar
>> HTTP/1.1", host: "testdav"
>> 2016/03/16 17:40:20 [crit] 15872#0: *1 unlink()
>> "/var/cache/nginx/client_temp/0000000001" failed (2: No such file or
>> directory), client: 127.0.0.1, server: testdav, request: "PUT /tengine.tar
>> HTTP/1.1", host: "testdav"
>
>
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20160318/75c74dc0/attachment.html>


Подробная информация о списке рассылки nginx-ru