Рейтинг:0

docker-compose с nginx и nextcloud FPM перестает принимать соединения https

флаг si

У меня довольно стандартная установка с 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)

Michael Hampton avatar
флаг cz
Вы сделали что-то странное, например, зашифровали свой домашний каталог?
флаг si
нет, ничего подобного; Я действительно заметил, что контейнеры воссоздаются, когда я выполняю операцию «cd». Они созданы минуту назад или около того. Я думаю, что что-то не так в моей конфигурации компоновки, а не в nginx или nextcloud
Рейтинг:0
флаг si

Кажется, что решение состоит в том, чтобы использовать перезапуск: всегда вместо «если не остановлен». Я действительно не знаю, зачем мне это нужно, так как никто не останавливает контейнеры, поэтому они должны работать бесконечно, как и многие другие контейнеры, которые у меня есть на той же машине, которые используют «если не остановлен» и остаются на неопределенный срок.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.