Aller au contenu principal

Maintenance et cache

Disponible

Fonctionnalité déployée et prise en charge. Les champs et commandes décrits ici sont stables au sein de la version v1alpha1.

Un site statique est servi à travers un cache : les visiteurs reçoivent une copie gardée jusqu'à une heure. Ce guide montre comment mettre un site en maintenance sans perdre son contenu, quand et comment vider le cache, et comment supprimer un site.

Prérequis​

  • Un site publié : Publier un site statique.
  • Les droits cdn:write (maintenance), cdn:purge (cache), cdn:delete (suppression) : inclus dans les policies gérées readwrite et admin.

1. Mettre un site en maintenance​

sng cdn disable docs
site docs en maintenance (effectif dans quelques minutes)

Le site répond alors 503 Service Unavailable à toutes les requêtes, avec une page de maintenance, l'en-tête Retry-After: 300 et Cache-Control: no-store. Le contenu, le domaine et le certificat sont conservés. Vous pouvez continuer à publier (sng cdn upload) pendant la maintenance.

Comptez quelques minutes avant que le changement soit visible. Pour qu'aucun visiteur ne garde l'ancienne version en cache entre-temps, la plateforme vide le cache du site immédiatement, puis de nouveau plusieurs fois dans les minutes qui suivent.

En manifeste : spec.maintenanceMode: true, puis sng apply.

2. Réactiver le site​

sng cdn enable docs
site docs réactivé (effectif dans quelques minutes)

sng cdn list affiche disabled pour un site en maintenance, enabled sinon. Les deux commandes sont sans effet si le site est déjà dans l'état demandé.

3. Comprendre la durée de cache​

RéponseDurée en cache
fichier trouvéCache-Control: public, max-age=3600 (1 heure), plus 5 minutes de grâce
40430 secondes
page de maintenance, autres erreursjamais

sng cdn upload vide le cache du site à la fin de chaque envoi : une nouvelle version est visible tout de suite, sans attendre l'expiration.

4. Vider le cache à la main​

Utile après une modification hors de sng cdn upload (site servi depuis votre propre bucket), ou pour ne pas attendre les 30 secondes d'un 404 mis en cache avant l'arrivée du fichier :

sng cdn clear-cache docs
cache du site docs vidé

Le cache est vidé pour tout le domaine du site. Alias : clear_cache.

5. Supprimer un site​

sng cdn delete docs
⚠ Suppression définitive du site "docs" et de son contenu (tenant "acme").
Tapez « oui » pour confirmer : oui
site docs supprimé (42 fichier(s) retiré(s))

Le site, tout son contenu (stockage default) et son cache sont supprimés ; rien n'est récupérable. Un site servi depuis votre propre bucket n'y touche pas : vos fichiers restent dans votre bucket. Depuis un script : --yes. sng kind delete CDNSite docs a le même effet.

Vérification​

curl -sI https://docs.acme.dev.stackngo.app/ | head -3
HTTP/2 503
cache-control: no-store
content-type: text/html; charset=utf-8

Après sng cdn enable, la même commande renvoie HTTP/2 200.

Pour aller plus loin​

  • Durée de cache par fichier : non réglable avec sng cdn upload dans cette version (les fichiers envoyés n'ont pas d'en-tête Cache-Control propre). Un site servi depuis votre bucket utilise le Cache-Control de chaque objet s'il en a un.
  • Cache vidé sans droit : si votre identité n'a pas cdn:purge, sng cdn upload publie quand même mais avertit attention : cache non vidé, relancez sng cdn clear-cache docs.
  • Ce que voit le visiteur pendant une panne du stockage : une page d'accueil StackNGO (200, jamais mise en cache), jusqu'au retour du stockage.
  • API : disable et enable correspondent à POST /v1/cdn/{name}/disable|enable (cdn:write), clear-cache à POST /v1/cdn/{name}/cache/clear (cdn:purge, réponse 204), delete à DELETE /v1/cdn/{name} (cdn:delete).

Voir aussi​