Souvent, lors du développement d’une application Web, l’application est appelée à partir d’un ordinateur local http://localhost:x Ports, ce qui signifie essentiellement que nous devons exposer plusieurs ports pour accéder à différents modules de l’application. Dans l’article suivant, nous allons expliquer la méthode d’utilisation du proxy inverse pour appeler une application et les avantages de son utilisation.

Pourquoi avons-nous besoin d’un proxy inverse?

La raison la plus évidente d’utiliser le proxy inverse est d’éviter de changer les ports chaque fois que vous essayez d’accéder à différents modules de l’application à partir de la même URL. Via un proxy inverse, nous pouvons accéder au frontend, au backend ou à d’autres services sans changer de port via un seul domaine. Une autre raison importante d’utiliser le proxy inverse est de masquer les services derrière un proxy et d’éviter de résoudre les problèmes CORS.

conditions

  • Docker Compose sur Linux
  • iptables doit être activé. Notez que Docker l’utilise iptables pour accéder aux connexions entrantes.

Construire docker-compose.yml

Comme référence pour cet article, créons un serveur WordPress MySQL avec NGINX dans un service. Tout d’abord, créez le conteneur Docker et définissez les ports, l’image de base, les noms de conteneur et les noms de service.

Expliquons la configuration par étapes.

  1. services La commande définit le service que vous créez dans Docker.

2. Comme indiqué ci-dessous, le running_wp Service utilisé nginx:latest comme image de base. Vous pouvez également utiliser votre propre image personnalisée pour MySQL et WordPress. Ensuite, par exemple, vous devez actuellement attribuer un nom de conteneur production_wp est utilisé ci-dessous. Copiez les fichiers locaux de la zone de volume dans le répertoire spécifié lors de la création de cette image Docker. Il est important d’attribuer des ports à utiliser pour l’accessibilité à l’intérieur ou à l’extérieur de l’application. Comme indiqué ci-dessous, nous avons mappé 8081 Hôte aussi 80 Port pour conteneurs.

3. Attribuez les données d’accès requises avec le environment Commander.

4. Attribuez l’image de base et le nom du conteneur. NGINX crée l’image de base lors de la première exécution. Vous pouvez également ajouter des fichiers SSL cryptés https://letsencrypt.org/; C’est gratuit.

5. Ajoutez le fichier de configuration sous NGINX conf.d Chemin – Il s’agit du répertoire par défaut pour les descriptions d’hôte virtuel.

6. Comme indiqué ci-dessous, ce fichier de configuration se compose de deux parties. Tout d’abord, le côté serveur montre quel port est surveillé par le conteneur NGINX (8080 et 443). Deuxièmement, le trafic aller serait dirigé vers le port 8081 – C’est le port du conteneur de production à atteindre.

7. Activez HTTP sécurisé avec le ssl on Commander.

8. Vous pouvez utiliser le pour ajouter des en-têtes pour les connexions proxy proxy_set_header Directive qui aide à redéfinir ou à ajouter des champs à l’en-tête de la demande transmis via le serveur proxy.

9. Pour le proxy inverse, comme mentionné au début, nous spécifions un chemin pour le conteneur WordPress dans la configuration NGINX. Disons qu’il est utilisé http: // localhost / wp à http: // localhost: 8081, c’est un chemin asymétrique.

10. Nous pouvons maintenant démarrer nos conteneurs avec la commande suivante. N’oubliez pas d’être sur le même chemin docker-compose.yaml lors du démarrage des conteneurs.

11. Le docker-compose up La commande est une forme courte de docker-compose build et docker-compose run .

12. Une fois le processus terminé, deux conteneurs doivent être déployés auxquels nous ne pouvons pas accéder directement:

13. Nous pouvons vérifier nos applications (l’une avec NGINX et l’autre avec Apache).
Aller vers http: // localhost: 8080et cela frappera le proxy inverse NGINX qui à son tour chargera l’application Web NGINX:

Application Web NGINX

14. Vérifiez également avec la navigation http: // localhost: 8081 ou alors http: // localhost / wpvia le chemin asymétrique du proxy inverse Nginx et l’application Web Apache se chargera:

Application Web Apache

Dépannage

Une fois les services opérationnels, essayez de connecter votre application Web au lien localhost. S’il ne répond pas, vérifiez l’exactitude de votre tableau iptables.

Par défaut, les conteneurs Docker peuvent se connecter au monde extérieur, mais le monde extérieur ne peut pas se connecter aux conteneurs. Chaque connexion sortante semble provenir de l’une des adresses IP de l’ordinateur hôte grâce à une iptables Règle de masquage sur l’ordinateur hôte créée par le serveur Docker au démarrage:

Conclusion

Cet article vise à montrer comment vous pouvez utiliser Nginx avec docker-compose lumière. Le paramètre de la configuration du proxy inverse pour les conteneurs est également affiché. Son utilisation vous offre une flexibilité supplémentaire dans le déploiement d’une application Web.

J’espère que vous avez apprécié ce post! D’autres suivront sous peu.

Jusque-là, il y en a encore quelques-uns ici Bonnes pratiques pour Kubernetes et Docker pour la gestion et le déploiement de conteneurs.



Source link

Recent Posts