Maison  >  Article  >  Opération et maintenance  >  Comment utiliser Nginx pour la mise en cache dynamique du contenu

Comment utiliser Nginx pour la mise en cache dynamique du contenu

PHPz
PHPzoriginal
2023-08-03 16:42:241868parcourir

Comment utiliser Nginx pour la mise en cache dynamique de contenu

Nginx est un serveur Web hautes performances et un serveur proxy inverse largement utilisé pour créer des sites Web et des applications hautes performances. En plus d'être un serveur, Nginx peut également être utilisé comme serveur de cache pour mettre en cache du contenu statique et dynamique. Cet article explique comment utiliser Nginx pour mettre en cache du contenu dynamique et améliorer les performances du site Web et l'expérience utilisateur.

Nginx utilise le module proxy_cache pour implémenter la fonction de mise en cache. Voici un exemple simple de fichier de configuration :

http {
  proxy_cache_path /path/to/cache keys_zone=my_cache:10m;

  server {
    listen 80;
    server_name example.com;

    location / {
      proxy_pass http://backend;
      proxy_cache my_cache;
      proxy_cache_key $scheme$host$request_uri;
      proxy_cache_valid 200 302 10m;
      proxy_cache_valid 404 1m;
    }
  }

  upstream backend {
    server backend.example.com;
  }
}

Dans le fichier de configuration ci-dessus, nous avons défini un répertoire cache /path/to/cache,并给它分配了一个名为my_cache的keys_zone,这样Nginx就可以将缓存内容保存到该目录中。然后,我们在server块中的location中开启了代理模式,并将请求转发给了后端服务器backend.example.com.

Dans la configuration liée à proxy_cache, nous utilisons la directive proxy_cache_key pour définir la clé de cache. Ici, nous utilisons le schéma demandé, l'hôte et request_uri comme clé de cache. Cela garantit que la même demande sera mise en cache et évite d'envoyer plusieurs fois la même demande au serveur backend.

Nous utilisons également la directive proxy_cache_valid pour définir la durée de validité du cache. Pour les réponses avec les codes retour 200 et 302, nous fixons le temps de validité à 10 minutes ; pour les réponses avec le code retour 404, nous fixons le temps de validité à 1 minute. De cette manière, différentes durées de cache peuvent être définies en fonction de différents codes de retour.

Une fois la configuration terminée, enregistrez le fichier et rechargez la configuration Nginx. Ensuite, lorsqu'une requête arrive, Nginx vérifiera d'abord s'il existe un cache, s'il y en a, il renverra directement le contenu du cache. Sinon, il transmettra la requête au serveur backend et enregistrera la réponse dans le cache.

Il convient de noter que le cache de Nginx est basé sur des fichiers, ce qui signifie que le contenu dynamique est généralement enregistré sous forme de fichiers statiques. Par conséquent, si le contenu dynamique change fréquemment ou si le contenu doit être renvoyé en fonction d'informations spécifiques à l'utilisateur, vous devez faire attention à la stratégie de mise à jour du cache.

En utilisant Nginx pour la mise en cache dynamique du contenu, les performances et l'expérience utilisateur du site Web peuvent être considérablement améliorées. Lorsque le cache atteint, cela peut éviter un traitement répété des demandes et réduire la charge sur le serveur principal. Dans le même temps, étant donné que les fichiers statiques sont transmis plus rapidement, le temps de chargement des pages peut également être raccourci et l'expérience d'accès de l'utilisateur peut être améliorée. amélioré.

J'espère que cet article pourra aider tout le monde à comprendre comment utiliser Nginx pour la mise en cache de contenu dynamique. Si vous avez des questions, veuillez laisser un message pour en discuter.

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