GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer et utiliser Traefik comme proxy inverse avec Docker sur CentOS 8

Traefik est un proxy inverse HTTP open source et un équilibreur de charge qui vous aide à déployer facilement des microservices. Vous pouvez facilement l'intégrer à vos composants d'infrastructure, notamment Docker, Kubernetes, Docker Swarm, Rancher, AWS et bien d'autres. Si vous souhaitez exécuter plusieurs applications sur le même hôte Docker, vous pouvez utiliser Traefik comme proxy inverse pour exposer les ports 80 et 443 au reste du monde.

Dans ce tutoriel, nous allons vous montrer comment installer et configurer Traefik en tant que proxy inverse sur CentOS 8.

Prérequis

  • Un serveur exécutant CentOS 8.
  • Un nom de domaine valide pointé vers l'adresse IP de votre serveur.
  • Un mot de passe root est configuré sur le serveur.

Installer Docker et Docker Compose

Tout d'abord, vous devrez installer la dernière version de Docker et Docker Compose sur votre système. Par défaut, Docker n'est pas disponible dans le dépôt par défaut de CentOS 8. Vous devrez donc ajouter le référentiel Docker CE dans votre système. Vous pouvez l'ajouter avec la commande suivante :

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Une fois le repo créé, installez le Docker CE avec la commande suivante :

dnf install docker-ce --nobest -y

Une fois le Docker installé, démarrez le service Docker et activez-le pour qu'il démarre au redémarrage du système avec la commande suivante :

systemctl start docker
systemctl enable docker

Pour installer Docker Compose, vous devrez installer Curl et télécharger le binaire Docker Compose sur votre système. Vous pouvez le faire avec la commande suivante :

dnf install curl
curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Créer un réseau Docker

Ensuite, vous devrez créer un nouveau réseau Docker pour exécuter le conteneur traefik. Vous pouvez le créer avec le nom "web" en exécutant la commande suivante :

docker network create web

Ensuite, vérifiez votre réseau avec la commande suivante :

docker network ls

Vous devriez obtenir le résultat suivant :

NETWORK ID          NAME                DRIVER              SCOPE
76a9475e5ab0        bridge              bridge              local
2a3d79f64747        host                host                local
4c9123229eaa        none                null                local
0b6e010b43d0        web                 bridge              local

Installer et configurer le proxy Traefik

Avant de commencer, vous devrez installer httpd-tools pour générer le mot de passe crypté. Vous pouvez installer cet outil avec la commande suivante :

dnf install httpd-tools -y

Une fois installé, générez le mot de passe crypté avec la commande suivante :

htpasswd -nb admin my_password

Vous devriez obtenir le résultat suivant :

admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0

Ensuite, créez un nouveau fichier de configuration Traefik avec la commande suivante :

nano traefik.toml

Ajoutez les lignes suivantes, y compris votre nom de domaine valide, votre mot de passe sécurisé et votre port :

defaultEntryPoints = ["http", "https"]

[entryPoints]
  [entryPoints.dashboard]
    address = ":8080"
    [entryPoints.dashboard.auth]
      [entryPoints.dashboard.auth.basic]
        users = ["admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0"]
  [entryPoints.http]
    address = ":80"
      [entryPoints.http.redirect]
        entryPoint = "https"
  [entryPoints.https]
    address = ":443"
      [entryPoints.https.tls]

[api]
entrypoint="dashboard"

[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"

[docker]
domain = "traefik.linuxbuz.com"
watch = true
network = "web"

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, créez un fichier vide pour stocker vos informations Let's Encrypt.

touch acme.json

Ensuite, donnez l'autorisation appropriée à ce fichier avec la commande suivante :

chmod 600 acme.json

Créer un fichier Docker Compose

Ensuite, vous devrez créer un nouveau fichier docker-compose.yml et définir votre domaine, port, réseau et volume.

Vous pouvez le créer avec la commande suivante :

nano docker-compose.yml

Ajoutez les lignes suivantes :

version: '3'

services:

  traefik:
    image: traefik:1.7.21-alpine
    command: --docker --docker.domain=linuxbuz.com
    ports:
      - 80:80
      - 443:443
    networks:
      - web
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/traefik.toml
      - ./acme.json:/acme.json
    labels:
      - "traefik.frontend.rule=Host:traefik.linuxbuz.com"
      - "traefik.port=8080"
    container_name: traefik
    restart: always

networks:
   web:
    external: true

Enregistrez et fermez le fichier lorsque vous avez terminé.

Créer un conteneur Docker Traefik

À ce stade, le fichier de configuration Traefik et Docker Compose est prêt. Maintenant, construisez le conteneur Traefik avec la commande suivante :

docker-compose up -d

Vous devriez obtenir le résultat suivant :

Unable to find image 'traefik:1.7.21-alpine' locally
1.7.21-alpine: Pulling from library/traefik
c9b1b535fdd9: Pull complete 
c141e361698e: Pull complete 
2573c02b6f16: Pull complete 
1619fb3841d1: Pull complete 
Digest: sha256:0e4ac8ae724603898620dbd5eb9cda7ec05f405d25476eb0d32b716b490ba079
Status: Downloaded newer image for traefik:1.7.21-alpine
27e735357bb3b7d2d253ff78ddf6e78896851420eff399e8ade23affc7ff0bf7

Ensuite, vérifiez le conteneur en cours d'exécution avec la commande suivante :

docker ps

Vous devriez obtenir le résultat suivant :

CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                                      NAMES
7604696507a5        traefik:1.7.21-alpine   "/entrypoint.sh --do…"   6 seconds ago       Up 4 seconds        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   traefik

Accéder à l'interface Web Traefik

Maintenant, ouvrez votre navigateur Web et accédez à l'interface Web Traefik en utilisant l'URL https://traefik.linuxbuz.com. Il vous sera demandé de fournir un nom d'utilisateur et un mot de passe :

Indiquez le nom d'utilisateur en tant qu'administrateur et le mot de passe que vous avez générés précédemment et cliquez sur Signer dans bouton. Vous devriez voir le tableau de bord Traefik dans l'écran suivant :

Cliquez sur SANTÉ languette. Vous devriez voir l'état de santé du conteneur Traefik dans l'écran suivant :

Conclusion

Toutes nos félicitations! vous avez installé avec succès le proxy Traefik sur CentOS 8. Pour plus d'informations, consultez la documentation Traefik.


Cent OS
  1. Comment installer et utiliser Docker Compose sur CentOS

  2. Comment installer Odoo 11 sur CentOS 7 avec Nginx comme proxy inverse

  3. Comment installer Odoo 10 sur CentOS 7 avec Nginx en tant que proxy inverse

  4. Comment installer Odoo sur CentOS 8 avec Nginx en tant que proxy inverse

  5. Comment installer Odoo 14 sur CentOS 8 avec Nginx en tant que proxy inverse

Comment installer ReactJS avec le proxy Nginx sur CentOS 8

Comment installer et utiliser Nginx Proxy Manager avec Docker

Comment installer et utiliser Docker Compose sur CentOS 8

Comment installer et utiliser TermRecord sur CentOS 8

Comment installer et utiliser Traceroute sur CentOS 7

Comment installer et utiliser Docker sur CentOS 8