Come installare e utilizzare Traefik come proxy inverso con Docker su CentOS 8
Su questa pagina
- Prerequisiti
- Installa Docker e Docker Compose
- Crea rete Docker
- Installa e configura Traefik Proxy
- Crea un file di composizione Docker
- Costruisci il contenitore Docker Traefik
- Accedi all'interfaccia web di Traefik
- 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.