Dans le développement d'applications Web moderne, la haute disponibilité est l'une des exigences clés. Avec Docker Compose et Nginx, nous pouvons facilement réaliser le déploiement à haute disponibilité des applications PHP, en veillant à ce que les applications soient toujours stables et disponibles lors de la rencontre des échecs.
En tant que plate-forme de contenerisation principale, Docker peut encapsuler les applications et leurs dépendances dans des conteneurs indépendants. Docker Compose simplifie le processus de définition et de gestion des applications multi-container.
Nginx n'est pas seulement un serveur Web haute performance, mais aussi un serveur proxy inverse largement utilisé. Il peut distribuer le trafic demandé à plusieurs serveurs backend, réaliser l'équilibrage de la charge et améliorer la disponibilité et les performances du système global.
Tout d'abord, vous devez créer un fichier docker-compose.yml pour définir plusieurs instances d'application et des conteneurs Nginx. La configuration de l'exemple est la suivante:
Version: '3' services: APP1: construire: contexte: . dockerfile: dockerfile redémarrer: toujours APP2: construire: contexte: . dockerfile: dockerfile redémarrer: toujours nginx: Image: nginx PORTS: - "80:80" Volumes: - ./nginx.conf:/etc/nginx/nginx.conf redémarrer: toujours
Dans cette configuration, App1 et App2 sont deux conteneurs d'applications PHP, qui peuvent exécuter les mêmes versions ou différentes d'applications pour obtenir une redondance. Le conteneur Nginx est responsable de la réception du trafic et de l'équilibrage de la charge.
Créez et montez un fichier de configuration nginx.conf dans le conteneur Nginx. L'exemple de configuration est le suivant:
http { Backend en amont { Server App1: 8080; Server App2: 8080; } serveur { Écoutez 80; emplacement / { proxy_pass http: // backend; proxy_set_header host $ host; proxy_set_header x-real-ip $ Remote_addr; } } }
Cette configuration définit un backend nommé en amont, qui contient deux adresses de serveur d'applications. Une fois que Nginx a reçu la demande, il alloue le trafic vers ces deux conteneurs d'application PHP pour atteindre l'équilibrage de charge.
Écrivez un dockerfile en fonction des besoins réels, l'exemple de contenu est le suivant:
De PHP: 7.4.15-fpm Workdir / var / www / html Copie. . Exécuter Chmod -R 755 Storage Cmd ["php-fpm"]
Ce dockerfile est basé sur l'image PHP officielle, définit le répertoire de travail, copier le code d'application et configure les autorisations du répertoire et démarre enfin le service PHP-FPM.
Une fois la configuration terminée, démarrez tous les conteneurs avec la commande suivante:
docker-compose up -d
Cette commande démarrera plusieurs conteneurs définis en arrière-plan, permettant aux applications PHP d'être équilibrées à la charge via Nginx pour atteindre une haute disponibilité.
Grâce à Docker Compose et Nginx, nous avons réussi à construire un environnement de déploiement hautement disponible pour les applications PHP. L'architecture et le mécanisme d'équilibrage de la charge multi-continents garantissent que les applications sont toujours disponibles en un seul point de défaillance et d'échelle de support.
Cet article fournit des exemples de base où vous pouvez personnaliser davantage les configurations en fonction des besoins réels pour implémenter une architecture d'environnement de production plus complexe.