Am o configurație destul de standard, cu nginx ca interfață web (cu certificate https și așa) și un backend FPM nextcloud; toata instalatia are trafic foarte scazut, din moment ce eu sunt singurul care o foloseste.
La un moment dat, https nu mai funcționează, fiecare conexiune din exterior are ca rezultat fie timeout, fie conexiunea refuzată; în această situație, se pare că nextcloud funcționează și nginx nu.
M-am gândit că poate avea de-a face cu o oarecare economie de energie pe gazda mea, dar nu este cazul, deoarece toate celelalte containere de pe aceeași gazdă funcționează foarte bine; Lucrul amuzant este că există o modalitate simplă de a o face să funcționeze din nou și este să deschideți un shell pe gazdă și să faceți:
cd $NEXTCLOUD_DIRECTORY
unde NEXTCLOUD_DIRECTORY este directorul de bază pentru aplicație, unde sunt atât fișierele docker-compose.yml, cât și directoarele de date (situate la $HOME/docker/nextcloud-letsencrypt).
Pur și simplu nu înțeleg de ce se întâmplă asta și de ce acea operațiune este o soluție...
Iată fișierul meu de scriere:
versiunea: '3'
Servicii:
nginx:
imagine: nginx:alpine
porturi:
- „80:80”
- „127.0.0.1:8443:443”
volume:
- ./data/nginx:/etc/nginx/conf.d
- ./data/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
reporniți: dacă nu este oprit
comandă: „/bin/sh -c „în timp ce :; dormi 6 ore și așteaptă $${!}; nginx -s reîncărcare; terminat & nginx -g \"daemon off;\"'"
certbot:
imagine: certbot/certbot
volume:
- ./data/certbot/conf:/etc/letsencrypt
- ./data/certbot/www:/var/www/certbot
punct de intrare: "/bin/sh -c 'capcană de ieșire TERM; în timp ce :; reînnoiește certbot; dormi 12 ore și așteaptă $${!}; gata;'"
reporniți: dacă nu este oprit
cloud-db:
container_name: ${DB_CONTAINER_NAME}
imagine: mariadb:${DB_IMAGE_TAG}
reporniți: dacă nu este oprit
comandă: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volume:
...
mediu inconjurator:
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
aplicatie:
imagine: nextcloud:21-fpm-alpine
link-uri:
- cloud-db
utilizator: "1000:1004"
volume:
- ./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/data
- /mnt/usb/Expansion_2/serie:/mnt/serie:ro
- /mnt/usb/archivio/archivio:/mnt/archivio:ro
reporniți: dacă nu este oprit
./data se află în FS rădăcină, în directorul principal al utilizatorului 1000.
/mnt/usb/shared/nextcloud este pe o unitate USB ext4 (valori implicite ext4, nofail 0 0), R/W pentru utilizator
/mnt/usb/Expansion_2 este o altă unitate USB ex4 (ext4 implicite, nofail 0 0) servită prin NC (sunt înregistrate ca stocare externă în NC)