Files
crm.clientright.ru/ВОССТАНОВЛЕНИЕ_ОПТИМИЗАЦИИ_01_11_2025.md
Fedor 3a1635ec4d feat: OnlyOffice Document Server integration with auto-save
- Добавлен s3Path в callbackUrl для сохранения в оригинальный файл
- Исправлено сохранение: теперь файлы обновляются в S3 автоматически
- Отключена проверка SSL в OnlyOffice (rejectUnauthorized: false)
- Разрешены callback на приватные IP адреса
- Добавлено логирование callback в onlyoffice_callback.log
- Восстановлены оптимальные настройки индексации Nextcloud
- filesystem_check_changes = 0 для S3 External Storage
- Redis event system работает для автоматической индексации

Документация:
- ИСПРАВЛЕНИЕ_СОХРАНЕНИЯ_ONLYOFFICE_01_11_2025.md
- ИСПРАВЛЕНИЕ_SSL_ONLYOFFICE_01_11_2025.md
- ВОССТАНОВЛЕНИЕ_ОПТИМИЗАЦИИ_01_11_2025.md
- ONLYOFFICE_НАСТРОЙКИ.md
- ТЕСТИРОВАНИЕ_СОХРАНЕНИЯ_ONLYOFFICE.md
2025-11-01 10:32:51 +03:00

8.1 KiB
Raw Blame History

Восстановление оптимальных настроек индексации Nextcloud

Дата: 1 ноября 2025
Проблема: Вчера вечером настройки были изменены, индексация стала медленной
Решение: Восстановлены оптимальные настройки


📊 Что было изменено вчера

До изменений (оптимально):

{
  "filesystem_check_changes": 0,  // S3 не сканируется автоматически
  "encrypt": false                 // Шифрование отключено
}

После изменений (медленно):

{
  "filesystem_check_changes": 1,  // S3 сканируется при каждом доступе ❌
  "encrypt": false
}

Последствия:

  • 🐌 Nextcloud сканировал всё S3 хранилище при доступе к папкам
  • 📂 24,000+ файлов → медленная загрузка
  • Как до оптимизации 31 октября

Что сделано сегодня

1. Восстановлена оптимальная настройка S3

Команда:

docker exec -u www-data nextcloud-fresh php occ files_external:option 1 filesystem_check_changes 0

Результат:

{
  "filesystem_check_changes": 0,  // ✅ Не сканировать автоматически
  "encrypt": false                 // ✅ Шифрование отключено
}

2. Проверена работа Redis Event System

Статус сервиса:

● nextcloud-cache-updater.service
   Active: active (running) ✅
   PID: 6697, 6700

Последние обработанные события:

[2025-11-01T04:47:25.960Z] 📥 Событие:
   Type: file_created
   Source: s3_monitor
   Path: clientright/0/1761972417968.pdf
   🔄 Обновление кеша Nextcloud...
   ✅ Кеш обновлён
   ✅ Родительская папка обновлена

Вывод: Система работает корректно!


🎯 Итоговая конфигурация

Nextcloud config.php:

'filesystem_check_changes' => 1,  // Глобально: сканировать при первом доступе
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.locking' => '\\OC\\Memcache\\Redis',

External Storage (S3):

{
  "filesystem_check_changes": 0,  // ✅ НЕ сканировать S3 автоматически
  "encrypt": false,                // ✅ Шифрование отключено
  "enable_sharing": false,
  "previews": true,
  "readonly": false
}

Redis Event System:

// Сервис: nextcloud-cache-updater.service
// Статус: active (running) ✅
// Канал: crm:file:events
// Container: nextcloud-fresh

🔄 Схема работы индексации

Для файлов через Nextcloud UI:

Пользователь → Nextcloud UI → S3
                     ↓
          Nextcloud автоматически обновляет oc_filecache ✅

Для файлов через CRM:

CRM → S3 напрямую
  ↓
CRM публикует событие в Redis (crm:file:events)
  ↓
nextcloud-cache-updater.js слушает канал
  ↓
При file_created → occ files:scan --path="/admin/files/crm/..."
  ↓
Nextcloud обновляет oc_filecache ✅

📈 Статистика

Параметр Значение
Файлов в кеше 31,815
Storage ID 4 (Amazon S3)
Redis CRM 147.45.146.17:6379
Redis Nextcloud nextcloud-redis:6379
Сервис cache updater active (running)

Преимущества текущей конфигурации

Быстро:

  • S3 не сканируется автоматически
  • Нет задержек при открытии папок
  • Прямой доступ к файлам через кеш

Автоматически:

  • CRM публикует события в Redis
  • Cache updater обновляет кеш по событиям
  • Только для конкретных файлов (не вся папка)

Надёжно:

  • Systemd автозапуск сервиса
  • Логирование всех событий
  • Graceful shutdown при остановке

🔧 Команды для проверки

1. Проверка настроек S3:

docker exec -u www-data nextcloud-fresh php occ files_external:list --output=json | python3 -m json.tool

2. Статус сервиса:

sudo systemctl status nextcloud-cache-updater

3. Просмотр логов:

tail -f /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/nextcloud_cache_updater.log

4. Размер кеша:

docker exec nextcloud-db-fresh mariadb -u nextcloud -pnextcloud_password nextcloud \
  -e "SELECT COUNT(*) FROM oc_filecache WHERE storage = 4;"

5. Проверка Redis:

# CRM Redis
redis-cli -h 147.45.146.17 -p 6379 -a 'CRM_Redis_Pass_2025_Secure!' PING

# Nextcloud Redis
docker exec nextcloud-redis redis-cli -a 'Nextcloud_Redis_Pass_2025!' PING

⚠️ Что НЕ ДЕЛАТЬ

НИКОГДА не запускать:

redis-cli FLUSHALL  # Удаляет ВСЕ данные из Redis!
redis-cli FLUSHDB   # Удаляет текущую БД Redis!

Почему:

  • Удаляется весь файловый кеш Nextcloud
  • Nextcloud начинает пересканировать всё S3 хранилище
  • Система становится медленной
  • Требуется долгое восстановление

НЕ менять вручную:

# НЕ менять filesystem_check_changes для S3 через UI!
# Только через команду:
docker exec -u www-data nextcloud-fresh php occ files_external:option 1 filesystem_check_changes 0

📝 Файлы системы

Основные компоненты:

  1. /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/nextcloud_cache_updater.js

    • Node.js скрипт для обработки Redis событий
    • Обновляет кеш Nextcloud по событиям из CRM
  2. /etc/systemd/system/nextcloud-cache-updater.service

    • Systemd сервис для автозапуска
    • Перезапуск при сбоях
  3. /var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/nextcloud_cache_updater.log

    • Лог всех обработанных событий
    • Для отладки и мониторинга

📚 Связанные документы

  1. NEXTCLOUD_ОПТИМИЗАЦИЯ_31_10_2025.md - первоначальная оптимизация
  2. АВТОМАТИЧЕСКОЕ_ОБНОВЛЕНИЕ_КЕША_NEXTCLOUD.md - описание Redis event system
  3. NEXTCLOUD_ЛАЙФХАКИ_УСКОРЕНИЯ.md - 20 способов ускорения
  4. ЛОГ_СЕССИИ_31_10_2025_ИСПРАВЛЕНИЕ_ОТКРЫТИЯ_ФАЙЛОВ.md - исправление открытия файлов

🎯 Статус

Время завершения: 09:30 (01.11.2025)
Статус: ВОССТАНОВЛЕНО

Что работает:

  • S3 не сканируется автоматически (быстро)
  • Redis event system обрабатывает события
  • Кеш обновляется автоматически
  • 31,815 файлов проиндексировано
  • Оба Redis работают

Производительность:

  • Быстро как Google Drive
  • 🔄 Автоматическая индексация
  • 📊 Оптимальное использование ресурсов

Конец отчёта