ENbext.dev
DocumentationCompatibilité nginx

Traduction automatique depuis l’anglais. Consulter l’original.

Sur cette page

API de purge du cache

bext fournit une API de purge de cache compatible avec le module de purge de cache basé sur NJS de nginx. Si vous disposez de scripts ou de hooks de déploiement qui purgent le cache proxy de nginx, ils fonctionnent sans changement avec bext.

Configuration#

L'API de purge du cache s'exécute sur un port distinct (8442 par défaut) :

Variable d'environnement Défaut Description
BEXT_CACHE_PURGE_PORT 8442 Port pour l'API de purge
BEXT_CACHE_DIR /var/cache/nginx/page_cache Chemin du répertoire de cache

L'API respecte la disposition du répertoire levels=1:2 de nginx pour le stockage des clés de cache.

Points de terminaison#

Purger les chemins spécifiques#

bash
POST /nginx-cache/purge
Content-Type: application/json

{
  "host": "example.com",
  "paths": ["/api/products", "/api/categories"]
}

Supprime les entrées de cache pour les combinaisons hôte + chemin spécifiées.

Purger par modèle#

bash
POST /nginx-cache/purge-pattern
Content-Type: application/json

{
  "host": "example.com",
  "pattern": "X-Cache-Tag: products"
}

Analyse les entrées du cache et supprime celles correspondant au modèle d'en-tête pour l'hôte donné.

Tout purger#

bash
POST /nginx-cache/purge-all

Efface tout le répertoire de cache.

État du cache#

bash
GET /nginx-cache/status

Renvoie les statistiques du répertoire de cache :

json
{
  "cache_dir": "/var/cache/nginx/page_cache",
  "files": 1247,
  "directories": 320
}

Hachage des clés de cache#

bext utilise le même hachage de clé basé sur MD5 que nginx :

  1. La clé de cache (par exemple, GETexample.com/api/products ) est hachée MD5
  2. Le hachage est mappé sur un chemin de fichier à l'aide de la disposition levels=1:2 :
code
Hash: d41d8cd98f00b204e9800998ecf8427e

Path: /var/cache/nginx/page_cache/e/27/d41d8cd98f00b204e9800998ecf8427e
                                  ^  ^^
                                  |  |+-- last 2 hex chars before last 1
                                  |  +--- levels=1:2 second level
                                  +------ levels=1:2 first level

Intégration avec les scripts de déploiement#

Si vous disposez de scripts de purge existants qui appellent la purge du cache de nginx :

bash
#!/bin/bash
# deploy.sh — works with both nginx NJS and bext
curl -X POST http://localhost:8442/nginx-cache/purge \
  -H "Content-Type: application/json" \
  -d '{"host": "example.com", "paths": ["/"]}'

Aucune modification nécessaire : l'API est compatible.

Conseil

Le port de purge du cache ( 8442 par défaut) est distinct du port HTTP principal et du socket de purge du cache utilisé en interne. Les scripts qui purgent via cette API appellent le cache en mémoire de bext ; ils ne touchent pas au cache FastCGI sur disque. Pour les sites WordPress, le plugin bext-wp appelle automatiquement cette API à chaque modification de contenu — voir Intégration WordPress.

En rapport#

Modifier cette page ↗Besoin d’aide ? ↗
Rechercher dans la documentation

Saisissez un sujet, une commande ou une question.