Jelastic
MinIO
DevOps
NGINX
Mis à jour le 15 juin 2023

Configurer un Reverse Proxy NGINX pour MinIO sur Jelastic Cloud

Sur Jelastic Cloud, pour permettre la communication via HTTPS sur nos services, nous pouvons soit utiliser le SLB (Share Load Balancer) par défaut, soit utiliser notre propre reverse proxy. L'avantage de la 2e méthode est de mieux maîtriser la configuration et de pouvoir bénéficier de notre propre nom de domaine (et donc de ne pas dépendre du nom de domaine par défaut de la plateforme Jelastic). Cette méthode est recommandée pour les services en production.

Dans cet article, nous allons voir comment configurer NGINX devant une instance MinIO, qu'on supposera déjà déployée dans Jelastic. Nous utiliserons Let's Encrypt pour obtenir un certificat SSL.

Qu'est-ce que Jelastic Cloud ?

Jelastic Cloud est une plateforme de cloud computing qui permet aux développeurs et aux entreprises de déployer, gérer et escalader facilement des applications web en utilisant des conteneurs. Elle offre une variété de fonctionnalités de gestion de l'infrastructure, notamment la possibilité de déployer des applications sur différents types de serveurs, de redimensionner facilement les ressources en fonction de la charge de travail, de déplacer des applications entre différents environnements de développement, de test et de production, et de surveiller les performances des applications en temps réel. Jelastic Cloud est conçue pour être facile à utiliser et à gérer, même pour les utilisateurs sans expérience en matière de gestion de l'infrastructure.

Qu'est-ce que NGINX ?

NGINX est un serveur web open source qui s'exécute sur un système d'exploitation comme Linux. Il peut être utilisé comme serveur web classique pour servir du contenu statique, mais il est surtout connu pour sa capacité à agir comme un reverse proxy pour gérer les requêtes HTTP et HTTPS et distribuer le trafic de manière efficace à d'autres serveurs web ou applications. NGINX est également souvent utilisé comme un chargeur de balancer pour répartir la charge de travail entre plusieurs serveurs et améliorer la disponibilité et la scalabilité d'une application. En plus de ces fonctionnalités, NGINX offre également des options de mise en cache de contenu, de contrôle d'accès et de sécurité, de journalisation et de monitoring de performances.

Quelles sont les alternatives à NGINX ?

Il existe plusieurs alternatives à NGINX, chacune avec ses propres caractéristiques et fonctionnalités. Voici quelques exemples :

  • Apache HTTP Server : Ce serveur web open source est l'un des plus anciens et des plus populaires. Il est largement utilisé pour servir du contenu statique et dynamique et offre une grande flexibilité grâce à sa large gamme de modules disponibles.

  • Microsoft IIS (Internet Information Services) : Ce serveur web est fourni avec les systèmes d'exploitation Windows et est utilisé pour servir du contenu web et de l'application sur les serveurs Windows.

  • Lighttpd : Ce serveur web open source est conçu pour être léger et rapide, ce qui en fait une bonne option pour les serveurs de petite et moyenne taille. Il offre une bonne scalabilité et un support pour les technologies de développement web modernes.

  • Apache Tomcat : Ce serveur web open source est spécialisé dans le déploiement et l'exécution d'applications Java sur un serveur web. Il peut être utilisé seul ou en conjonction avec un autre serveur web comme Apache HTTP Server ou NGINX.

Il existe de nombreuses autres options disponibles, chacune avec ses propres avantages et inconvénients en fonction des besoins et des exigences de l'application. Il est recommandé de faire des recherches et de comparer les différentes options avant de choisir un serveur web.

Qu'est-ce que Let's Encrypt ?

Let's Encrypt est une organisation à but non lucratif qui fournit gratuitement des certificats SSL/TLS (Secure Sockets Layer/Transport Layer Security) pour sécuriser les communications sur Internet. Les certificats SSL/TLS sont utilisés pour établir une connexion sécurisée entre un navigateur web et un serveur web, ce qui est essentiel pour protéger les données sensibles telles que les mots de passe, les numéros de carte de crédit et les informations personnelles des utilisateurs.

Let's Encrypt utilise une infrastructure automatisée pour fournir des certificats de manière simple et rapide, ce qui rend le processus de sécurisation de sites web facile et abordable pour les individus et les entreprises. Les certificats fournis par Let's Encrypt sont reconnus par la plupart des navigateurs web et peuvent être utilisés pour sécuriser n'importe quel site web.

Let's Encrypt a été créé dans le but de rendre le web plus sécurisé et d'encourager l'adoption de connexions sécurisées par défaut. En utilisant un certificat SSL/TLS fourni par Let's Encrypt, vous pouvez aider à protéger les données de vos utilisateurs et améliorer la confiance de vos visiteurs dans votre site web.

Comment installer NGINX sur Jelastic Cloud ?

1. Connexion à la plateforme Jelastic Cloud

Connectez-vous à votre compte Jelastic Cloud et accédez à la console de gestion de votre environnement. Chez Kalixys, nous utilisons ClicketCloud.

2. Création du conteneur NGINX

Créez un nouveau conteneur en utilisant l'image NGINX disponible dans le référentiel de conteneurs Jelastic. Assurez-vous de spécifier les paramètres de ressources et de configuration appropriés pour votre application.

Il faut penser à désactiver l'accès via le SLB, et attacher une adresse IP publique sur le conteneur, qui nous permettra de configurer le DNS par la suite.

installation-nginx-jelastic.png

Vous pouvez lancer la création, et attendre que l'opération soit terminée.

3. Configuration du DNS

Dans la configuration de votre DNS, ajoutez un champ de type A en faisant pointer le nom de domaine (ou sous nom de domaine) sur l'adresse IP publique ddu conteneur NGINX.

C'est important de bien réaliser cette étape avant de rajouter Let's Encrypt, sinon la configuration suivante partira en échec.

4. Configuration de Let's Encrypt

Ajoutez l'add-on Let's Encrypt au conteneur NGINX

lets-encrypt-nginx.png

Appliquer la configuration, et attendez que l'installation soit terminée pour procéder à la suite.

5. Paramétrage du NGINX

Configurez les paramètres de NGINX en modifiant le fichier de configuration principal nginx/nginx-jelastic.conf.

Ici, on part du principe que notre installation MinIO comporte 4 noeuds avec donc 4 adresse IP privées.

On considère que la console Minio, accessible depuis le port 4949 par défaut, sera joignable via console.minio.mondomaine.com et que Minio Admin, port par défaut 80, via minio.mondomaine.com.

http {
 ...
 
    upstream minio_console {
    	server private_ip_1:4949;
    	server private_ip_2:4949;
    	server private_ip_3:4949;
    	server private_ip_4:4949;
    	sticky path = /; keepalive 100;
	}
    upstream minio_api {
    	server private_ip_1;
    	server private_ip_2;
    	server private_ip_3;
    	server private_ip_4;
    	sticky path = /; keepalive 100;
	}
    
 ...
 
      server {
        listen       80;
        listen       [::]:80;
        server_name  console.minio.mondomaine.com;
    
        return 301 https://$server_name$request_uri;
    }
  
    server {
        listen       80;
        listen       [::]:80;
        server_name  minio.mondomaine.com;
    
        return 301 https://$server_name$request_uri;
    }
 
 ...
 
}

Enregistrez les modifications.

6. Paramétrage du SSL

Configurez les paramètres de NGINX en modifiant le fichier de configuration principal conf.d/ssl..conf.

server {
    listen       443 http2 ssl;
    server_name  minio.mondomaine.com;
    
    ...
    
    location / {
      
      ...
      
      set $upstream_name minio_api;
       proxy_pass http://$upstream_name;
       
       ...
    }
 }
 
 server {
    listen       443 http2 ssl;
    server_name  console.minio.mondomaine.com;
    
    ...
    
    location / {
      
      ...
      
      set $upstream_name minio_console;
       proxy_pass http://$upstream_name;
       
       ...
    }
 }

Enregistrez les modifications.

7. Redémarrage du Conteneur NGINX

Redémarrez le conteneur NGINX en utilisant la console de gestion de Jelastic. Vous devriez maintenant être en mesure d'accéder à votre application via le nom de domaine attaché au conteneur NGINX.

Recommandations

Il est recommandé de consulter la documentation de NGINX et de Jelastic pour obtenir des instructions plus détaillées sur la configuration et l'utilisation de NGINX sur la plateforme Jelastic Cloud.

Des conseils sur la configuration du NGINX pour MINIO sont également accessibles sur le site officielle de MinIO.

Nous développons votre business en ligne.

Des projets made in Kalixys

Nous aimons la culture du partage. Et nous l'appliquons. Vous souhaitez suivre nos projets déployées pour nos différents clients, être informé de notre développement, ou connaître notre savoir-faire technique ? Laissez-nous votre email !

Abonnez-vous à notre newsletter

En cochant cette case, j'accepte que mon email soit utilisé pour recevoir la newsletter de Kalixys.

Aucun démarchage commercial ne sera effectué avec votre adresse email. Nous ne transmettrons pas votre email à nos partenaires. Lire notre politique de confidentialité