Re: webdav запись файла по другому root в случае если закончилось место
On Mon, Mar 21, 2016 at 04:53:57PM +0300, Andrey Oktyabrskiy wrote: > Я бы это делал вообще на уровне мониторинга. storage1 заполнился на 95% - > перегенерировали конфиг(и), перечитали, пишем на storage2. Освободили место > на storage1, стал он заполнен на 90% - перегенерировали конфиг(и), > перечитали, пишем снова на storage1. Проще поменять симлинк. :) Для атомарности через mv(1) aka rename(2). -- Eugene Berdnikov ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
On 2016-03-21 15:41, Иван Мишин wrote: От вопроса отклонились, но он по прежнему актуален для меня. Повторюсь, в кратце: - есть nginx, есть вебдав - есть задача: при закачке файла в случае отсутствия места на storage1(/tmp/ram/testdav), nginx должен положить закачиваемый файл на storage2(/etc/nginx/next_stor) - при окончании места на storage1 во время загрузки файла по webdav, клиент получает ответ 500 - сделано перенаправление на другой location с другим root ссылающимся уже на storage2, в случае возникновения 500 (то есть в случае окончания места на storage1). - результат в логах следующий: 2016/03/18 19:17:33 [alert] 32563#0: *19 write() "/tmp/ram/testdav/tengine.tar.12" failed (28: No space left on device), client: 127.0.0.1, server: testdav, request: "PUT /tengine.tar HTTP/1.1", host: "testdav" 2016/03/18 19:17:33 [crit] 32563#0: *19 chmod() "/var/cache/nginx/client_temp/11" 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/18 19:17:33 [crit] 32563#0: *19 unlink() "/var/cache/nginx/client_temp/11" failed (2: No such file or directory), client: 127.0.0.1, server: testdav, request: "PUT /tengine.tar HTTP/1.1", host: "testdav" Есть рекомендации/идеи как реализовать? Если нужен мой конфиг, сообщите я скину. Я бы это делал вообще на уровне мониторинга. storage1 заполнился на 95% - перегенерировали конфиг(и), перечитали, пишем на storage2. Освободили место на storage1, стал он заполнен на 90% - перегенерировали конфиг(и), перечитали, пишем снова на storage1. ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
On 3/21/16 3:41 PM, Иван Мишин wrote: > Максим пишет: > > Lua - сторонний модуль. И я бы не рекомендовал использовать его > без нужды, качество кода там - сомнительное. > > При этом этот модуль с кодом сомнительного качества присутствует > в плюсе nginx, то покупая nginx plus, клиент получает одну из > компонент сомнительного качества. Я вижу это так. Да и если бы он > был на столько сомнителен на сколько об этом заявляют Дунин и > Бартенев, разве он попал бы в nginx plus? > [...] Чтобы продолжать эту дискуссию в каком-то более/менее конструктивном русле, нужно определиться с количественными, объективно измеряемыми параметрами этой сомнительности. Плюсовой поддержкой у нас занимается группа квалифицированных инженеров, которые постараются решить любые проблемы с нашим продуктом с заданным SLA. По уже почти трехлетнему опыту продажи этого бандла -- код lua и вокруг него пока не вызывал каких-то существенных проблем в этой части. Если вдруг возникнут -- будем пытаться решить сами, обратимся к автору, приложим максимум усилий. Поддержкой oss в этом и других листах/форумах тоже занимается значимая часть нашего коллектива. Понятно, что без какого-либо SLA. Ну еще раз пытаюсь донести мысль, что Валентин никаких утверждений про качество кода не делал. В качестве рекламной паузы: мы точно так же продаем поддержку на nginx-oss, если кому-то не нравится идея покупать nginx-plus. -- Maxim Konovalov ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
Максим пишет: > Lua - сторонний модуль. И я бы не рекомендовал использовать его > без нужды, качество кода там - сомнительное. При этом этот модуль с кодом сомнительного качества присутствует в плюсе nginx, то покупая nginx plus, клиент получает одну из компонент сомнительного качества. Я вижу это так. Да и если бы он был на столько сомнителен на сколько об этом заявляют Дунин и Бартенев, разве он попал бы в nginx plus? Я вот лично запутался в теме -- какой вопрос обсуждается? От вопроса отклонились, но он по прежнему актуален для меня. Повторюсь, в кратце: - есть nginx, есть вебдав - есть задача: при закачке файла в случае отсутствия места на storage1(/tmp/ram/testdav), nginx должен положить закачиваемый файл на storage2(/etc/nginx/next_stor) - при окончании места на storage1 во время загрузки файла по webdav, клиент получает ответ 500 - сделано перенаправление на другой location с другим root ссылающимся уже на storage2, в случае возникновения 500 (то есть в случае окончания места на storage1). - результат в логах следующий: > 2016/03/18 19:17:33 [alert] 32563#0: *19 write() > "/tmp/ram/testdav/tengine.tar.12" failed (28: No space left on > device), client: 127.0.0.1, server: testdav, request: "PUT /tengine.tar > HTTP/1.1", host: "testdav" > 2016/03/18 19:17:33 [crit] 32563#0: *19 chmod() > "/var/cache/nginx/client_temp/11" 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/18 19:17:33 [crit] 32563#0: *19 unlink() > "/var/cache/nginx/client_temp/11" failed (2: No such file or > directory), client: 127.0.0.1, server: testdav, request: "PUT /tengine.tar > HTTP/1.1", host: "testdav" Есть рекомендации/идеи как реализовать? Если нужен мой конфиг, сообщите я скину. 21 марта 2016 г., 15:22 пользователь Maxim Konovalovнаписал: > On 3/21/16 3:09 PM, Иван Мишин wrote: > > Если купить NGINX Plus Extras Package - там внутри будет lua модуль. > > https://www.nginx.com/products/technical-specs/ > > > > что-то я совсем запутался, в плюсе говорится о поддержке lua > > модуля, а в этой > > теме https://forum.nginx.org/read.php?21,265294,265310 Бартенев и > > Дунин говорят о кривости данного модуля. Как же он оказался в плюсе, > > если по словам людей из nginx, этот модуль якобы плохой? > > > Валентин нигде не говорит, что он плохой. Он лишь сообщает очевидную > истину, что доп. код несет в себе доп. риски. > > Максим Дунин пишет, что код далек от совершенства, что скорее всего > соответствует действительности для бОльшей части кода, написанного > человечеством за всю историю программирования. > > Оба выражают свое личное мнение (и я с ними тоже). > > Я вот лично запутался в теме -- какой вопрос обсуждается? > > -- > Maxim Konovalov > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
On 3/21/16 3:09 PM, Иван Мишин wrote: > Если купить NGINX Plus Extras Package - там внутри будет lua модуль. > https://www.nginx.com/products/technical-specs/ > > что-то я совсем запутался, в плюсе говорится о поддержке lua > модуля, а в этой > теме https://forum.nginx.org/read.php?21,265294,265310 Бартенев и > Дунин говорят о кривости данного модуля. Как же он оказался в плюсе, > если по словам людей из nginx, этот модуль якобы плохой? > Валентин нигде не говорит, что он плохой. Он лишь сообщает очевидную истину, что доп. код несет в себе доп. риски. Максим Дунин пишет, что код далек от совершенства, что скорее всего соответствует действительности для бОльшей части кода, написанного человечеством за всю историю программирования. Оба выражают свое личное мнение (и я с ними тоже). Я вот лично запутался в теме -- какой вопрос обсуждается? -- Maxim Konovalov ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
> > Если купить NGINX Plus Extras Package - там внутри будет lua модуль. > https://www.nginx.com/products/technical-specs/ что-то я совсем запутался, в плюсе говорится о поддержке lua модуля, а в этой теме https://forum.nginx.org/read.php?21,265294,265310 Бартенев и Дунин говорят о кривости данного модуля. Как же он оказался в плюсе, если по словам людей из nginx, этот модуль якобы плохой? 21 марта 2016 г., 15:03 пользователь Илья Шипициннаписал: > я имел в виду, что на рассылку рассчитывать не приходится. > > в рассылке первым делом попросят воспроизвести проблему без сторонних > модулей (это на самом деле круто, что для опенсорс продукта есть подобная > поддержка, без шуток) > > ну и топикстартер начал обсуждение в этой рассылке, не в платном канале. > > 21 марта 2016 г., 15:35 пользователь Gena Makhomed > написал: > > On 21.03.2016 10:33, Илья Шипицин wrote: >> >> относиться к этому явлению как к сомнительному качеству кода или нет, >>> вопрос субъективный. но да, гарантий вам никто не даст, >>> решение и риски за вами >>> >> >> Если купить NGINX Plus Extras Package - там внутри будет lua модуль. >> https://www.nginx.com/products/technical-specs/ >> >> Обещают как минимум "Assistance with Installation and Deployment". >> https://www.nginx.com/support/ >> >> -- >> Best regards, >> Gena >> >> >> ___ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
я имел в виду, что на рассылку рассчитывать не приходится. в рассылке первым делом попросят воспроизвести проблему без сторонних модулей (это на самом деле круто, что для опенсорс продукта есть подобная поддержка, без шуток) ну и топикстартер начал обсуждение в этой рассылке, не в платном канале. 21 марта 2016 г., 15:35 пользователь Gena Makhomedнаписал: > On 21.03.2016 10:33, Илья Шипицин wrote: > > относиться к этому явлению как к сомнительному качеству кода или нет, >> вопрос субъективный. но да, гарантий вам никто не даст, >> решение и риски за вами >> > > Если купить NGINX Plus Extras Package - там внутри будет lua модуль. > https://www.nginx.com/products/technical-specs/ > > Обещают как минимум "Assistance with Installation and Deployment". > https://www.nginx.com/support/ > > -- > Best regards, > Gena > > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
On 3/21/16 1:41 PM, Alex Domoradov wrote: > Было бы круто, если бы можно было покупать отдельные модули, а не > весь пакет целиком. Допустим мне надо только балансировка и lua, но > при этом я должен купить весь пакет. > > 2 nginx > а есть ли в планах введение какой то более гибкой системы подписки? > Например возможность купить отдельные модули, учитывая что вы > недавно сделали поддержку динамических модулей. > Пока нет таких планов. Лично я не уверен, что продажи и управление такими подписками получится реализовать без существенного оверхеда. Речь даже не про ИТ системы. -- Maxim Konovalov ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
Было бы круто, если бы можно было покупать отдельные модули, а не весь пакет целиком. Допустим мне надо только балансировка и lua, но при этом я должен купить весь пакет. 2 nginx а есть ли в планах введение какой то более гибкой системы подписки? Например возможность купить отдельные модули, учитывая что вы недавно сделали поддержку динамических модулей. 2016-03-21 12:35 GMT+02:00 Gena Makhomed: > On 21.03.2016 10:33, Илья Шипицин wrote: > > относиться к этому явлению как к сомнительному качеству кода или нет, >> вопрос субъективный. но да, гарантий вам никто не даст, >> решение и риски за вами >> > > Если купить NGINX Plus Extras Package - там внутри будет lua модуль. > https://www.nginx.com/products/technical-specs/ > > Обещают как минимум "Assistance with Installation and Deployment". > https://www.nginx.com/support/ > > -- > Best regards, > Gena > > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
On 21.03.2016 10:33, Илья Шипицин wrote: относиться к этому явлению как к сомнительному качеству кода или нет, вопрос субъективный. но да, гарантий вам никто не даст, решение и риски за вами Если купить NGINX Plus Extras Package - там внутри будет lua модуль. https://www.nginx.com/products/technical-specs/ Обещают как минимум "Assistance with Installation and Deployment". https://www.nginx.com/support/ -- Best regards, Gena ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
модуль nginx-lua разрабатывается в CloudFlare Ну, не совсем. Он разрабатывается в том числе *работниками* CloudFlare, но начинал разрабатываться ещё пока разработчик был в AliBaba ;) ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
1) насчет трети российских сайтов, мне почему-то так запомнилось, видимо, я неправильно понял вот эту новость https://geektimes.ru/post/270502/ (сами CloudFlare говорят про 2 миллиона доменов) 2) насчет количества тестов, инфа общедоступна https://github.com/openresty/lua-nginx-module/tree/master/t самое крупное внедрение, это, наверное, сам CloudFlare. у нас внедрение есть, в 2gis есть. проблем по части nginx-lua не помню ни разу относиться к этому явлению как к сомнительному качеству кода или нет, вопрос субъективный. но да, гарантий вам никто не даст, решение и риски за вами 21 марта 2016 г., 13:14 пользователь Aleksandr Sytarнаписал: > > > 21 марта 2016 г., 7:42 пользователь Илья Шипицин > написал: > >> модуль nginx-lua разрабатывается в CloudFlare, по некоторым оценкам через >> CloudFlare проксируется треть российских сайтов, модуль покрыт тестами (их >> почти 3000), понятно, что гарантий вам никто не даст и использование будет >> на ваш риск. >> > > Илья откуда такая инфа? > > >> >> 18 марта 2016 г., 14:07 пользователь Иван Мишин >> написал: >> >> Я подумывал о lua изначально, да только вот эта >>> https://forum.nginx.org/read.php?21,265294,265310 рассылка всю охоту к >>> lua отбила у меня. >>> >>> >>> 18 марта 2016 г., 8:25 пользователь Илья Шипицин >>> написал: >>> >>> не так давно пробегал пример, как webdav подружить с lua, чудеса уровня тех, про которые вы говорите https://forum.nginx.org/read.php?21,259941,259941 16 марта 2016 г., 20:04 пользователь Иван Мишин написал: > Добрый день! > > Вопрос следующий: > Есть 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.02, 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/01" 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/01" 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 > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >>> >>> ___ >>> nginx-ru mailing list >>> nginx-ru@nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >>
Re: webdav запись файла по другому root в случае если закончилось место
Погуглил на тему кто в проде юзает модуль луа, В подтверждение информации которую дал Илья есть пост в блоге cloudflare https://blog.cloudflare.com/pushing-nginx-to-its-limit-with-lua/ Вот еще 2gis неплохо на lua сел судя по всему https://habrahabr.ru/company/2gis/blog/199504/ 21 марта 2016 г., 11:14 пользователь Aleksandr Sytarнаписал: > > > 21 марта 2016 г., 7:42 пользователь Илья Шипицин > написал: > >> модуль nginx-lua разрабатывается в CloudFlare, по некоторым оценкам через >> CloudFlare проксируется треть российских сайтов, модуль покрыт тестами (их >> почти 3000), понятно, что гарантий вам никто не даст и использование будет >> на ваш риск. >> > > Илья откуда такая инфа? > > >> >> 18 марта 2016 г., 14:07 пользователь Иван Мишин >> написал: >> >> Я подумывал о lua изначально, да только вот эта >>> https://forum.nginx.org/read.php?21,265294,265310 рассылка всю охоту к >>> lua отбила у меня. >>> >>> >>> 18 марта 2016 г., 8:25 пользователь Илья Шипицин >>> написал: >>> >>> не так давно пробегал пример, как webdav подружить с lua, чудеса уровня тех, про которые вы говорите https://forum.nginx.org/read.php?21,259941,259941 16 марта 2016 г., 20:04 пользователь Иван Мишин написал: > Добрый день! > > Вопрос следующий: > Есть 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.02, 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/01" 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/01" 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 > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >>> >>> ___ >>> nginx-ru mailing list >>> nginx-ru@nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> ___ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru >
Re: webdav запись файла по другому root в случае если закончилось место
21 марта 2016 г., 7:42 пользователь Илья Шипициннаписал: > модуль nginx-lua разрабатывается в CloudFlare, по некоторым оценкам через > CloudFlare проксируется треть российских сайтов, модуль покрыт тестами (их > почти 3000), понятно, что гарантий вам никто не даст и использование будет > на ваш риск. > Илья откуда такая инфа? > > 18 марта 2016 г., 14:07 пользователь Иван Мишин > написал: > > Я подумывал о lua изначально, да только вот эта >> https://forum.nginx.org/read.php?21,265294,265310 рассылка всю охоту к >> lua отбила у меня. >> >> >> 18 марта 2016 г., 8:25 пользователь Илья Шипицин >> написал: >> >> не так давно пробегал пример, как webdav подружить с lua, чудеса уровня >>> тех, про которые вы говорите >>> >>> https://forum.nginx.org/read.php?21,259941,259941 >>> >>> 16 марта 2016 г., 20:04 пользователь Иван Мишин >>> написал: >>> Добрый день! Вопрос следующий: Есть 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.02, 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/01" 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/01" 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 >>> >>> >>> ___ >>> nginx-ru mailing list >>> nginx-ru@nginx.org >>> http://mailman.nginx.org/mailman/listinfo/nginx-ru >>> >> >> >> ___ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
модуль nginx-lua разрабатывается в CloudFlare, по некоторым оценкам через CloudFlare проксируется треть российских сайтов, модуль покрыт тестами (их почти 3000), понятно, что гарантий вам никто не даст и использование будет на ваш риск. 18 марта 2016 г., 14:07 пользователь Иван Мишиннаписал: > Я подумывал о lua изначально, да только вот эта > https://forum.nginx.org/read.php?21,265294,265310 рассылка всю охоту к > lua отбила у меня. > > > 18 марта 2016 г., 8:25 пользователь Илья Шипицин > написал: > > не так давно пробегал пример, как webdav подружить с lua, чудеса уровня >> тех, про которые вы говорите >> >> https://forum.nginx.org/read.php?21,259941,259941 >> >> 16 марта 2016 г., 20:04 пользователь Иван Мишин >> написал: >> >>> Добрый день! >>> >>> Вопрос следующий: >>> Есть 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.02, 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/01" 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/01" 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 >>> >> >> >> ___ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
Я подумывал о lua изначально, да только вот эта https://forum.nginx.org/read.php?21,265294,265310 рассылка всю охоту к lua отбила у меня. 18 марта 2016 г., 8:25 пользователь Илья Шипициннаписал: > не так давно пробегал пример, как webdav подружить с lua, чудеса уровня > тех, про которые вы говорите > > https://forum.nginx.org/read.php?21,259941,259941 > > 16 марта 2016 г., 20:04 пользователь Иван Мишин > написал: > >> Добрый день! >> >> Вопрос следующий: >> Есть 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.02, 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/01" 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/01" 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 >> > > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
Если дружите с перлом, можете на нем 2016-03-18 11:07 GMT+02:00 Иван Мишин: > Я подумывал о lua изначально, да только вот эта > https://forum.nginx.org/read.php?21,265294,265310 рассылка всю охоту к > lua отбила у меня. > > > 18 марта 2016 г., 8:25 пользователь Илья Шипицин > написал: > > не так давно пробегал пример, как webdav подружить с lua, чудеса уровня >> тех, про которые вы говорите >> >> https://forum.nginx.org/read.php?21,259941,259941 >> >> 16 марта 2016 г., 20:04 пользователь Иван Мишин >> написал: >> >>> Добрый день! >>> >>> Вопрос следующий: >>> Есть 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.02, 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/01" 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/01" 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 >>> >> >> >> ___ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru >> > > > ___ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru
Re: webdav запись файла по другому root в случае если закончилось место
не так давно пробегал пример, как webdav подружить с lua, чудеса уровня тех, про которые вы говорите https://forum.nginx.org/read.php?21,259941,259941 16 марта 2016 г., 20:04 пользователь Иван Мишиннаписал: > Добрый день! > > Вопрос следующий: > Есть 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.02, 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/01" 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/01" 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 > ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru