Ricerca nel sito web

Come installare e utilizzare Traefik come proxy inverso con Docker su CentOS 8


Su questa pagina

  1. Prerequisiti
  2. Installa Docker e Docker Compose
  3. Crea rete Docker
  4. Installa e configura Traefik Proxy
  5. Crea un file di composizione Docker
  6. Costruisci il contenitore Docker Traefik
  7. Accedi all'interfaccia web di Traefik
  8. Conclusione

Traefik è un proxy inverso HTTP open source e un sistema di bilanciamento del carico che ti aiuta a distribuire facilmente i microservizi. Puoi integrarlo facilmente con i componenti della tua infrastruttura, inclusi Docker, Kubernetes, Docker Swarm, Rancher, AWS e molti altri. Se desideri eseguire più applicazioni sullo stesso host Docker, puoi utilizzare Traefik come proxy inverso per esporre le porte 80 e 443 al resto del mondo.

In questo tutorial, ti mostreremo come installare e configurare Traefik come proxy inverso su CentOS 8.

Prerequisiti

  • Un server che esegue CentOS 8.
  • Un nome di dominio valido indicato con l'IP del tuo server.
  • Il server è configurato con una password di root.

Installa Docker e Docker Compose

Innanzitutto, dovrai installare l'ultima versione di Docker e Docker Compose nel tuo sistema. Per impostazione predefinita, Docker non è disponibile nel repository predefinito di CentOS 8. Quindi dovrai aggiungere il repository Docker CE nel tuo sistema. Puoi aggiungerlo con il seguente comando:

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

Una volta creato il repository, installa Docker CE con il seguente comando:

dnf install docker-ce --nobest -y

Una volta installato Docker, avvia il servizio Docker e abilitalo per l'avvio al riavvio del sistema con il seguente comando:

systemctl start docker
systemctl enable docker

Per installare Docker Compose, dovrai installare Curl e scaricare il binario Docker Compose nel tuo sistema. Puoi farlo con il seguente comando:

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

Crea una rete Docker

Successivamente, dovrai creare una nuova rete Docker per eseguire il contenitore traefik. Puoi crearlo con il nome \web\ eseguendo il seguente comando:

docker network create web

Successivamente, verifica la tua rete con il seguente comando:

docker network ls

Dovresti ottenere il seguente output:

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

Installa e configura il proxy Traefik

Prima di iniziare, dovrai installare httpd-tools per generare la password crittografata. Puoi installare questo strumento con il seguente comando:

dnf install httpd-tools -y

Una volta installato, genera la password crittografata con il seguente comando:

htpasswd -nb admin my_password

Dovresti ottenere il seguente output:

admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0

Successivamente, crea un nuovo file di configurazione di Traefik con il seguente comando:

nano traefik.toml

Aggiungi le seguenti righe includendo il tuo nome di dominio valido, la tua password protetta e la porta:

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 = ""
storage = "acme.json"
entryPoint = "https"
onHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"

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

Salva e chiudi il file quando hai finito. Quindi, crea un file vuoto per archiviare le tue informazioni Let's Encrypt.

touch acme.json

Quindi, dai l'autorizzazione appropriata a questo file con il seguente comando:

chmod 600 acme.json

Crea un file di composizione Docker

Successivamente, dovrai creare un nuovo file docker-compose.yml e definire dominio, porta, rete e volume.

Puoi crearlo con il seguente comando:

nano docker-compose.yml

Aggiungi le seguenti righe:

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

Salva e chiudi il file quando hai finito.

Costruisci il contenitore Docker Traefik

A questo punto il file di configurazione di Traefik e Docker Compose è pronto. Ora, crea il contenitore Traefik con il seguente comando:

docker-compose up -d

Dovresti ottenere il seguente output:

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

Successivamente, verifica il contenitore in esecuzione con il seguente comando:

docker ps

Dovresti ottenere il seguente output:

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

Accedi all'interfaccia web di Traefik

Ora, apri il tuo browser web e accedi all'interfaccia web di Traefik usando l'URL https://traefik.linuxbuz.com. Ti verrà chiesto di fornire nome utente e password:

Fornisci il nome utente come amministratore e la password che hai generato in precedenza e fai clic sul pulsante Accedi. Dovresti vedere la dashboard di Traefik nella seguente schermata:

Fare clic sulla scheda SALUTE. Dovresti vedere lo stato di salute del container Traefik nella seguente schermata:

Conclusione

Congratulazioni! hai installato correttamente il proxy Traefik su CentOS 8. Per ulteriori informazioni, visita la documentazione di Traefik.