Maison > Opération et maintenance > Nginx > Configuration de la mise à jour du cache proxy Nginx pour répondre aux modifications du site Web en temps réel

Configuration de la mise à jour du cache proxy Nginx pour répondre aux modifications du site Web en temps réel

WBOY
Libérer: 2023-07-04 08:54:09
original
2112 Les gens l'ont consulté

Configuration de la mise à jour du cache proxy Nginx, réponse en temps réel aux modifications du site Web

Résumé : Cet article expliquera comment utiliser la configuration de la mise à jour du cache proxy Nginx pour obtenir une réponse immédiate aux mises à jour lorsque le contenu du site Web change, améliorant ainsi les performances du site Web et l'expérience utilisateur. Dans le même temps, nous fournirons quelques exemples de code pratiques pour aider les lecteurs à mieux comprendre et appliquer cette fonctionnalité.

  1. Introduction
    Nginx est un serveur HTTP et proxy inverse hautes performances largement utilisé dans le déploiement d'applications Internet. En mode proxy, Nginx peut mettre en cache le contenu statique du site Web, réduire la charge sur le serveur source et accélérer l'accès au site Web. Cependant, lorsque le contenu du site Web change, la configuration par défaut de Nginx ne met pas immédiatement à jour le cache, ce qui permet aux utilisateurs de voir l'ancien contenu de la page. Afin de résoudre ce problème, nous pouvons réaliser des mises à jour instantanées du cache proxy Nginx grâce à quelques astuces et configurations.
  2. Modification du fichier de configuration
    Tout d'abord, nous devons modifier le fichier de configuration Nginx pour garantir que le cache puisse être actualisé en temps réel lorsque le contenu du site Web est mis à jour. Nous pouvons y parvenir grâce aux éléments de configuration suivants :
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;
proxy_cache_key "$request_method|$host|$request_uri";
proxy_cache_valid 200 301 302 10m;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
Copier après la connexion

Parmi eux, proxy_cache_path spécifie le chemin de stockage et la taille limite du fichier cache ; proxy_cache_key définit le nom de la clé de cache ; , Assurez-vous que le cache peut être actualisé à chaque fois que l'URL demandée change ; proxy_cache_valid est utilisé pour spécifier la période de validité du cache des codes de réponse HTTP 200, 301 et 302 ; apparaît sur le serveur source. En cas d'erreur, les caches expirés peuvent être utilisés. proxy_cache_path指定了缓存文件的存储路径和大小限制;proxy_cache_key定义了缓存的键名,保证每次请求URL有所变化时能够刷新缓存;proxy_cache_valid用于指定HTTP响应码200、301、302的缓存有效期;proxy_cache_use_stale则是在源服务器出现错误时,允许使用过期的缓存。

  1. 缓存更新规则
    在默认情况下,Nginx只有在缓存过期后才会主动去源服务器请求新的内容。而我们希望能够在网站内容发生变化时,即时更新缓存。为了实现这个目标,可以通过以下的配置项来设置缓存更新规则:
if ( $request_method = POST ) {
    add_header X-Nginx-Cache "BYPASS";
    proxy_cache_bypass $http_cache_control;
    proxy_no_cache 1;
}
Copier après la connexion

上述配置将捕获POST请求,并在响应头中添加X-Nginx-Cache字段,用于标识该请求需要绕过缓存。同时,proxy_cache_bypassproxy_no_cache指令将确保这个请求不会被缓存。

  1. 脚本定时运行
    为了实现缓存的定时更新,我们可以编写一个脚本,通过定时任务的方式来刷新Nginx的缓存。具体的脚本内容如下:
#!/bin/bash

curl -X PURGE http://localhost/page1
curl -X PURGE http://localhost/page2
curl -X PURGE http://localhost/page3
Copier après la connexion

注意到上述脚本中使用了curl

    Règles de mise à jour du cache
      Par défaut, Nginx se rendra activement au serveur source pour demander un nouveau contenu uniquement après l'expiration du cache. Et nous voulons pouvoir mettre à jour le cache immédiatement lorsque le contenu du site Web change. Afin d'atteindre cet objectif, vous pouvez définir des règles de mise à jour du cache via les éléments de configuration suivants :

    1. rrreee
    2. La configuration ci-dessus capturera la requête POST et ajoutera le champ X-Nginx-Cache dans la réponse. en-tête pour Identifie que la requête doit contourner la mise en cache. En même temps, les directives proxy_cache_bypass et proxy_no_cache garantiront que cette requête ne sera pas mise en cache.
      🎜Le script s'exécute régulièrement🎜Afin de mettre en œuvre des mises à jour régulières du cache, nous pouvons écrire un script pour actualiser le cache de Nginx via des tâches planifiées. Le contenu spécifique du script est le suivant : 🎜🎜rrreee🎜 Notez que la commande curl est utilisée dans le script ci-dessus pour envoyer une requête PURGE à Nginx afin de vider le cache d'une page spécifique. Nous pouvons ajouter l'URL de la page qui doit actualiser le cache au script en fonction de la situation réelle. Ensuite, utilisez un outil de tâche planifiée (tel que cron) pour exécuter ce script régulièrement afin d'obtenir des mises à jour planifiées du cache. 🎜🎜🎜Conclusion🎜Cet article explique comment utiliser la configuration de la mise à jour du cache proxy Nginx pour obtenir une réponse instantanée lorsque le contenu du site Web change. Nous obtenons cette fonction en modifiant le fichier de configuration Nginx, en définissant le chemin de stockage du cache et les règles de mise à jour, et en écrivant un script exécuté régulièrement. L'utilisation de cette fonctionnalité peut améliorer efficacement les performances du site Web et l'expérience utilisateur, et réduire la pression sur le serveur source due aux demandes des utilisateurs. J'espère que les lecteurs pourront mieux comprendre et appliquer la configuration de mise à jour du cache proxy de Nginx grâce à l'introduction et à l'exemple de code de cet article. 🎜🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal