Configuration du nettoyage du cache Nginx pour maintenir le contenu du site Web à jour
Lors de la création d'un site Web, nous utilisons souvent Nginx comme serveur proxy inverse pour accélérer l'accès au site Web et mettre en cache les fichiers statiques. Cependant, lorsque nous mettons à jour le contenu d'un site Web, nous devons vider le cache de Nginx à temps pour permettre aux utilisateurs d'accéder au contenu le plus récent. Cet article explique comment configurer le nettoyage du cache Nginx pour maintenir le contenu du site Web à jour.
1. Configurez le chemin du cache
Tout d'abord, nous devons configurer le chemin du cache de Nginx. Ouvrez le fichier de configuration Nginx, généralement /etc/nginx/nginx.conf
ou /etc/nginx/conf.d/default.conf
, et recherchez http, ajoutez la configuration suivante : <code>/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
,找到http
段,添加以下配置:
http { ... proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; server { ... } ... }
上述配置将缓存文件存储在/var/cache/nginx
目录下,并设置了缓存大小为10GB,缓存过期时间为60分钟。需要根据实际情况进行调整。
二、配置缓存清理接口
接下来,我们需要配置一个接口用于清理Nginx的缓存。
在Nginx的配置文件中,找到需要清理缓存的地方,比如一个POST请求:
http { ... server { ... location /update { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; # 清理缓存 proxy_cache_purge my_cache GET POST; } ... } ... }
上述配置中,location /update
用于匹配需要更新的URL路径,比如/update
。proxy_cache_purge
指令用于清理缓存,参数GET POST
表示同时清理GET和POST请求的缓存。可以根据实际情况进行调整。
三、安装Purge模块
Nginx的默认安装中并不包含proxy_cache_purge
模块,我们需要手动安装。
使用以下命令安装Nginx的模块管理工具:
yum install -y yum-utils
使用以下命令添加Nginx的扩展源:
yum-config-manager --add-repo=https://nginx.org/packages/centos/7/x86_64/
最后,使用以下命令安装Nginx的nginx-module-cache-purge
模块:
yum install -y nginx-module-cache-purge
四、重启Nginx服务
完成以上配置后,需要重启Nginx服务使配置生效。使用以下命令重启Nginx:
systemctl restart nginx
五、清理缓存的方式
现在,我们可以通过访问清理缓存的接口来实现清理Nginx的缓存。比如,如果我们要清理/update
路径的缓存,可以使用以下命令:
curl -X POST http://yourdomain.com/update
这样就会触发Nginx清理/update
路径下的缓存。
六、自动清理缓存
为了保证网站内容的更新,我们可以通过定期清理缓存的方式,自动保持Nginx中的缓存与实际网站内容的一致性。
我们可以使用定时任务工具(如Cron)来定期执行清理缓存的命令。比如,设置每天凌晨4点清理一次缓存,可以使用以下命令编辑定时任务:
crontab -e
然后添加以下一行命令:
0 4 * * * curl -X POST http://yourdomain.com/update >> /tmp/nginx_cache_clear.log 2>&1
保存并退出编辑器,这样每天凌晨4点就会触发一次清理缓存的操作,并将执行结果保存在/tmp/nginx_cache_clear.log
rrreee
/var/cache/nginx
et définit la taille du cache sur 10 Go et le délai d'expiration du cache sur 60. minutes. Doit être ajusté en fonction de la situation réelle. 2. Configurer l'interface de nettoyage du cacheEnsuite, nous devons configurer une interface pour nettoyer le cache Nginx. 🎜🎜Dans le fichier de configuration Nginx, recherchez l'endroit où le cache doit être vidé, comme une requête POST : 🎜rrreee🎜Dans la configuration ci-dessus, location /update
est utilisé pour correspondre au chemin de l'URL qui doit être mis à jour, tel que /update
. La directive proxy_cache_purge
est utilisée pour vider le cache, et le paramètre GET POST
signifie vider le cache des requêtes GET et POST en même temps. Il peut être ajusté en fonction de la situation réelle. 🎜🎜3. Installez le module Purge 🎜🎜L'installation par défaut de Nginx n'inclut pas le module proxy_cache_purge
, nous devons l'installer manuellement. 🎜🎜Utilisez la commande suivante pour installer l'outil de gestion de module de Nginx : 🎜rrreee🎜Utilisez la commande suivante pour ajouter la source d'extension de Nginx : 🎜rrreee🎜Enfin, utilisez la commande suivante pour installer le nginx-module-cache-purge de Nginx code> module :🎜rrreee🎜4. Redémarrez le service Nginx🎜🎜Après avoir terminé la configuration ci-dessus, vous devez redémarrer le service Nginx pour que la configuration prenne effet. Utilisez la commande suivante pour redémarrer Nginx : 🎜rrreee🎜 5. Comment vider le cache 🎜🎜 Maintenant, nous pouvons nettoyer le cache de Nginx en accédant à l'interface de nettoyage du cache. Par exemple, si nous voulons vider le cache dans le chemin <code>/update
, nous pouvons utiliser la commande suivante : 🎜rrreee🎜Cela déclenchera Nginx pour nettoyer le cache dans le /update chemin. 🎜🎜6. Vider automatiquement le cache🎜🎜Afin de garantir que le contenu du site Web est mis à jour, nous pouvons automatiquement maintenir la cohérence entre le cache dans Nginx et le contenu réel du site Web en nettoyant régulièrement le cache. 🎜🎜Nous pouvons utiliser des outils de tâches planifiées (tels que Cron) pour exécuter régulièrement des commandes de vidage du cache. Par exemple, pour que le cache soit vidé tous les jours à 4 heures du matin, vous pouvez utiliser la commande suivante pour modifier la tâche planifiée : 🎜rrreee🎜 Ajoutez ensuite la ligne de commande suivante : 🎜rrreee🎜 Enregistrez et quittez l'éditeur, pour que l'opération de vidage du cache sera déclenchée à 4 heures du matin tous les jours et enregistrera les résultats de l'exécution dans le fichier <code>/tmp/nginx_cache_clear.log
. 🎜🎜Résumé🎜🎜Grâce à la configuration ci-dessus, nous pouvons automatiquement nettoyer le cache Nginx et maintenir le contenu du site Web à jour. Dans le même temps, nous pouvons également ajuster de manière flexible les chemins de cache et les méthodes de nettoyage selon les besoins pour nous adapter aux différents besoins du site Web. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!