У меня довольно стандартная установка с nginx в качестве веб-интерфейса (с сертификатами https и т. д.) и бэкэндом nextcloud FPM; вся установка имеет очень низкий трафик, так как я единственный, кто ее использует.
В какой-то момент https перестает работать, каждое подключение извне приводит либо к тайм-ауту, либо к отказу в соединении; в этой ситуации кажется, что nextcloud работает, а nginx нет.
Я думал, что это может быть связано с некоторой экономией энергии на моем хосте, но это не так, так как все остальные контейнеры на том же хосте работают нормально; Самое смешное, что есть простой способ заставить его снова работать, и он заключается в том, чтобы открыть оболочку на хосте и сделать:
компакт-диск $ NEXTCLOUD_DIRECTORY
где NEXTCLOUD_DIRECTORY — это базовый каталог для приложения, где находятся как файл docker-compose.yml, так и каталоги данных (расположенные в $HOME/docker/nextcloud-letsencrypt).
Я просто не понимаю, почему это происходит и почему эта операция является решением...
Вот мой компоновочный файл:
версия: '3'
Сервисы:
нгинкс:
изображение: nginx:alpine
порты:
- "80:80"
- "127.0.0.1:8443:443"
тома:
- ./данные/nginx:/etc/nginx/conf.d
- ./данные/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot
- ./data/nextcloud/www:/var/www/html:ro
- ./data/nextcloud/apps:/var/www/html/custom_apps:ro
перезапуск: если не остановлен
команда: "/bin/sh -c 'while:; сделать сон 6 часов и подождать $${!}; nginx -s перезагрузить; сделано & nginx -g \"демон выключен;\"'"
бот:
изображение: certbot/сертбот
тома:
- ./данные/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot
точка входа: "/bin/sh -c 'trap exit TERM; while:; обновить certbot; спать 12 часов и ждать $${!}; готово;'"
перезапуск: если не остановлен
облако-БД:
имя_контейнера: ${DB_CONTAINER_NAME}
изображение: mariadb:${DB_IMAGE_TAG}
перезапуск: если не остановлен
команда: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
тома:
...
среда:
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
приложение:
изображение: nextcloud: 21-fpm-alpine
ссылки:
- облако-дб
пользователь: "1000:1004"
тома:
- ./data/nextcloud/www:/var/www/html
- ./data/nextcloud/apps:/var/www/html/custom_apps
- ./data/nextcloud/config:/var/www/html/config
- /mnt/usb/shared/nextcloud:/var/www/html/данные
- /mnt/usb/Expansion_2/серия:/mnt/серия:ro
- /mnt/usb/архив/архив:/mnt/архив:ro
перезапуск: если не остановлен
./data находится в корневой файловой системе, в домашнем каталоге пользователя 1000.
/mnt/usb/shared/nextcloud находится на USB-накопителе ext4 (по умолчанию ext4, nofail 0 0), R/W для пользователя
/mnt/usb/Expansion_2 — еще один USB-накопитель ex4 (по умолчанию ext4, nofail 0 0), обслуживаемый через NC (они зарегистрированы как внешнее хранилище в NC)