Dans le développement Web, la mise en cache dynamique est l'un des principaux moyens pour améliorer les performances et la vitesse de réponse des applications Web. Dans l'environnement contenant Docker, l'utilisation de Nginx comme serveur proxy pour implémenter la mise en cache dynamique peut considérablement améliorer l'évolutivité et la flexibilité du système. Cet article présentera comment utiliser Nginx dans des conteneurs Docker pour implémenter la mise en cache dynamique des services Web et expliquer la configuration pertinente en détail grâce à des exemples de code spécifiques.
Avant de commencer à configurer, vous devez vous assurer que l'environnement suivant est prêt:
Tout d'abord, vous devez créer un conteneur Docker et y exécuter un serveur proxy Nginx. Exécutez la commande suivante pour créer et démarrer le 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 sur le port 80 de l'hôte, ce qui vous permet d'accéder plus facilement au serveur proxy Nginx via l'adresse IP de l'hôte.
Pour vérifier que le conteneur a été créé et exécuté avec succès, vous pouvez exécuter la commande suivante:
docker ps
Si vous voyez que le statut du conteneur est "en hausse", cela signifie que le conteneur a été démarré avec succès.
Ensuite, nous devons configurer le serveur proxy Nginx pour implémenter la mise en cache dynamique des services Web. Tout d'abord, entrez le terminal bash du conteneur Nginx:
docker exec -it nginx-proxy bash
Ensuite, exécutez la commande suivante pour modifier le fichier de configuration Nginx:
cd /etc/nginx/conf.d/
VI default.conf
Dans le fichier default.conf, ajoutez la configuration suivante:
serveur { Écoutez 80; server_name localhost; emplacement / { proxy_pass http: // web-app; proxy_cache my_cache; proxy_cache_valid 200 1d; proxy_cache_use_stale error timeout mise à jour http_500 http_502 http_503 http_504; } }
Dans la configuration ci-dessus, la directive Proxy_Pass transmet la demande du client à un serveur en amont nommé "Web-app". Dans le même temps, l'instruction proxy_cache permet la fonction de cache du serveur proxy et l'instruction proxy_cache_valid définit la période de validité du cache à 1 jour. La directive proxy_cache_use_stale est utilisée pour permettre le retour du contenu mis en cache expiré lors des mises à jour de cache.
Après enregistrer et sortir de l'éditeur, redémarrez le service Nginx pour rendre la configuration à prendre effet:
Service Nginx Redémarrer
Une fois le serveur proxy Nginx configuré, vous devez configurer l'application Web pour communiquer normalement avec le serveur proxy Nginx. Dans le fichier de configuration de l'application Web, ajoutez ce qui suit:
web-appot en amont { serveur<web-app-container-ip> ; }
Dans cette configuration, vous devez
docker inspect -f '{{range .networkSettings.networks}} {{. iPaddress}} {{end}}'<web-app-container-id>
Après avoir remplacé l'adresse IP dans la configuration, enregistrez et quittez le fichier de configuration.
Une fois la configuration terminée, vous pouvez commencer à tester la fonction de mise en cache dynamique. Ouvrez le navigateur et entrez "http: // localhost" pour accéder à l'application Web. À l'heure actuelle, le serveur proxy NGINX transfère la demande à l'application Web et met en cache les données de réponse renvoyées.
Après avoir rafraîchi la page du navigateur, le serveur proxy Nginx lit les données directement à partir du cache et renvoie sans réinitialiser une demande à l'application Web, améliorant ainsi la vitesse de réponse.
Cet article décrit comment utiliser Nginx Proxy Server dans Docker pour implémenter la mise en cache dynamique des services Web. En configurant la directive Proxy_Cache de Nginx et la directive Proxy_Cache_valid, vous pouvez facilement activer et configurer la fonctionnalité de cache de Nginx. Avec une démonstration de l'exemple de code, nous apprenons à créer un conteneur Nginx dans un environnement Docker et à y configurer la fonctionnalité de mise en cache dynamique. De cette façon, les performances et la réactivité de l'application Web peuvent être efficacement améliorées, améliorant ainsi l'expérience utilisateur.