- Добавлен 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
8.1 KiB
8.1 KiB
Восстановление оптимальных настроек индексации 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
📝 Файлы системы
Основные компоненты:
-
/var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/nextcloud_cache_updater.js- Node.js скрипт для обработки Redis событий
- Обновляет кеш Nextcloud по событиям из CRM
-
/etc/systemd/system/nextcloud-cache-updater.service- Systemd сервис для автозапуска
- Перезапуск при сбоях
-
/var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/nextcloud_cache_updater.log- Лог всех обработанных событий
- Для отладки и мониторинга
📚 Связанные документы
NEXTCLOUD_ОПТИМИЗАЦИЯ_31_10_2025.md- первоначальная оптимизацияАВТОМАТИЧЕСКОЕ_ОБНОВЛЕНИЕ_КЕША_NEXTCLOUD.md- описание Redis event systemNEXTCLOUD_ЛАЙФХАКИ_УСКОРЕНИЯ.md- 20 способов ускоренияЛОГ_СЕССИИ_31_10_2025_ИСПРАВЛЕНИЕ_ОТКРЫТИЯ_ФАЙЛОВ.md- исправление открытия файлов
🎯 Статус
Время завершения: 09:30 (01.11.2025)
Статус: ✅ ВОССТАНОВЛЕНО
Что работает:
- ✅ S3 не сканируется автоматически (быстро)
- ✅ Redis event system обрабатывает события
- ✅ Кеш обновляется автоматически
- ✅ 31,815 файлов проиндексировано
- ✅ Оба Redis работают
Производительность:
- ⚡ Быстро как Google Drive
- 🔄 Автоматическая индексация
- 📊 Оптимальное использование ресурсов
Конец отчёта