Настройка ownCloud на Debian Squeeze с nginx и Apache.
Есть весьма любопытный проект под названием ownCloud, который предоставляет dropbox-подобный сервис, только чуть более богатый на функциональность и чуть хуже реализованый в техническом планет.
Я уже поставил его у себя (и уже удалил) и могу немного рассказать о его особенностях.
Я для себя нашёл несколько исключительно интересных фич:
- Версионирование файлов (то есть можно откатить изменения, если что)
- Хранение контактов на сервере (не пробовал)
- Календарь и ToDo-шница (отвратительные)
- Стриминг аудио (и возможно видео), у меня не заработало нормально
- Клиенты для синхронизации по Win/Linux/Mac/iOS/Android, но есть и поддержка работы через WebDav.
Это условно можно назвать плюсами. А теперь о минусах:
- Требуется точная синхронизация времени. То есть если на обоих сторонах (ладно на сервере), не установлен ntp, то синхронизация работать не будет.
- Синхронизация происходит по WebDav, а значит на каждый файлик будет делаться отдельная серия PUT/PROPPATCH/PROPFIND запросов. Это сразу исключает синхронизацию, к примеру, логов pidgin. Там 100500 маленьких файликов, размер которых сравним с размерами ответа. И при каждой попытке положить файл будет делаться 3! запроса к скрипту. А значит будет дёргаться Apache(ну или php-fpm, что там у вас). Скрипт хоть и лёгкий, но всё равно это адски напрягает систему. А APC, например, приходится выключать, потому что тогда скрипт работает криво.
- Работа через nginx это, я вам доложу, непростое занятие. Ниже будет конфиг по которому у меня это всё таки заработало.
dav_access user:rw group:rw all:r; create_full_put_path on; dav_methods PUT DELETE MKCOL COPY MOVE; dav_ext_methods PROPFIND OPTIONS; location /owncloud/ { try_files $uri $uri/ @webdav; } location @webdav { proxy_pass http://78.46.50.53:8080; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; }
Если у вас остались вопросы, напишите мне письмо.