Maison >Opération et maintenance >Nginx >Configuration du nettoyage du cache Nginx pour maintenir le contenu du site Web à jour

Configuration du nettoyage du cache Nginx pour maintenir le contenu du site Web à jour

王林
王林original
2023-07-05 22:28:353541parcourir

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路径,比如/updateproxy_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.logrrreee

La configuration ci-dessus stocke les fichiers de cache dans le répertoire /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 cache

Ensuite, 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn