Maison  >  Article  >  développement back-end  >  Comment utiliser le serveur proxy Nginx dans Docker pour implémenter la mise en cache dynamique des services Web ?

Comment utiliser le serveur proxy Nginx dans Docker pour implémenter la mise en cache dynamique des services Web ?

王林
王林original
2023-09-06 12:12:23998parcourir

Comment utiliser le serveur proxy Nginx dans Docker pour implémenter la mise en cache dynamique des services Web ?

Comment utiliser le serveur proxy Nginx dans Docker pour implémenter la mise en cache dynamique des services Web ?

Introduction

Dans le développement Web, la mise en cache dynamique est l'un des moyens importants pour améliorer les performances et la vitesse de réponse des applications Web. Dans un environnement conteneurisé Docker, l'utilisation de Nginx comme serveur proxy pour implémenter la mise en cache dynamique peut encore améliorer l'évolutivité et la flexibilité du système. Cet article explique comment utiliser Nginx dans un conteneur Docker pour implémenter la mise en cache dynamique des services Web et l'explique en détail avec des exemples de code.

1. Préparation de l'environnement

Avant de commencer, nous devons préparer l'environnement suivant :

  1. Docker : assurez-vous que le moteur Docker est installé et exécuté avec succès
  2. Nginx : exécutez le serveur proxy Nginx dans le conteneur Docker ;
  3. Application Web : Préparez une application Web simple pour tester l'effet de la mise en cache dynamique.

2. Créer un conteneur Docker

Tout d'abord, nous devons créer un conteneur Docker et y exécuter le serveur proxy Nginx. Exécutez la commande suivante pour créer et démarrer un conteneur Nginx :

docker run -d --name nginx-proxy -p 80:80 nginx

Cette commande téléchargera et exécutera la dernière version de Nginx et mappera le port 80 du conteneur au port 80 de l'hôte afin que nous puissions accéder au proxy Nginx via l'IP de l'hôte. serveur d'adresses.

Pour vérifier si le conteneur est créé et exécuté avec succès, vous pouvez exécuter la commande suivante :

docker ps

Si vous voyez le statut du conteneur comme "Up", cela signifie que le conteneur a été créé avec succès.

3. Configurer le serveur proxy Nginx

Ensuite, nous devons configurer le serveur proxy Nginx pour implémenter la mise en cache dynamique des services Web. Tout d'abord, entrez dans le terminal bash du conteneur Nginx :

docker exec -it nginx-proxy bash

Ensuite, exécutez les commandes suivantes pour modifier le fichier de configuration Nginx :

cd /etc/nginx/conf.d/

vi default.conf

Dans le fichier default.conf, nous devons configurer les éléments suivants :

server {
    listen 80;
    server_name localhost;
    
    location / {
        proxy_pass http://web-app;
        proxy_cache my_cache;
        proxy_cache_valid 200 1d;
        proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    }
}

Dans ce qui précède configuration, on passe La directive proxy_pass transmet la requête du client au serveur en amont nommé "web-app". En même temps, dans le bloc location, nous utilisons la directive proxy_cache pour activer la fonction de cache du serveur proxy, et utilisons la directive proxy_cache_valid pour configurer la période de validité du cache. De plus, la directive proxy_cache_use_stale est utilisée pour permettre au serveur proxy de renvoyer une copie des anciennes données du cache au client lors de la mise à jour du cache.

Après avoir enregistré et quitté l'éditeur, redémarrez le service Nginx pour que la configuration prenne effet :

service nginx restart

4. Configurez l'application Web

Dans l'étape précédente, nous avons configuré le serveur proxy Nginx pour implémenter la mise en cache dynamique. Ensuite, nous devons effectuer une configuration de l'application Web afin qu'elle puisse communiquer correctement avec le serveur proxy Nginx.

Dans le fichier de configuration de l'application web, nous devons ajouter le contenu suivant :

upstream web-app {
    server <web-app-container-ip>;
}

Dans la configuration ci-dessus, nous utilisons la directive en amont pour définir le serveur en amont nommé "web-app" et spécifier son adresse IP comme < ;web -app-container-ip>. L'adresse IP peut être obtenue en exécutant la commande suivante :

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <web-app-container-id>

Remplacez par l'adresse IP réelle du conteneur et enregistrez le fichier de configuration.

5. Testez le cache dynamique

Après avoir terminé la configuration ci-dessus, nous pouvons tester le cache dynamique. Tout d'abord, ouvrez un navigateur sur la machine hôte et entrez « http://localhost » pour accéder à l'application Web. À ce stade, le serveur proxy Nginx transmettra la requête à l'application Web et mettra en cache les données de réponse renvoyées.

Ensuite, actualisez à nouveau la page du navigateur. Si le cache dynamique est configuré normalement, le serveur proxy Nginx obtiendra directement les données de réponse du cache et les renverra au client sans envoyer à nouveau de requête à l'application Web, améliorant ainsi les performances et la vitesse de réponse du système.

Exemple de code de référence :

server {
    listen 80;
    server_name localhost;
    
    location / {
        proxy_pass http://web-app;
        proxy_cache my_cache;
        proxy_cache_valid 200 1d;
        proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    }
}

Résumé

Cet article explique comment utiliser le serveur proxy Nginx dans Docker pour implémenter la mise en cache dynamique des services Web. En configurant la directive proxy_cache et la directive proxy_cache_valid de Nginx, nous pouvons facilement activer et configurer la fonction de mise en cache de Nginx. Dans le même temps, grâce à la démonstration d'un exemple de code, nous avons appris à créer un conteneur Nginx dans un environnement Docker, ainsi qu'à configurer et activer la fonction de mise en cache dynamique. De cette manière, nous pouvons améliorer efficacement les performances et la vitesse de réponse des applications Web et améliorer l'expérience utilisateur.

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