Traefik je open-source HTTP reverzní proxy a nástroj pro vyrovnávání zatížení, který vám pomůže snadno nasadit mikroslužby. Můžete jej snadno integrovat s komponentami vaší infrastruktury, včetně Docker, Kubernetes, Docker Swarm, Rancher, AWS a mnoha dalších. Pokud chcete na stejném hostiteli Dockeru spouštět více aplikací, můžete Traefik použít jako reverzní proxy k odhalení portů 80 a 443 zbytku světa.
V tomto tutoriálu vám ukážeme, jak nainstalovat a nakonfigurovat Traefik jako reverzní proxy na CentOS 8.
Předpoklady
- Server se systémem CentOS 8.
- Platný název domény s adresou IP vašeho serveru.
- Na serveru je nakonfigurováno heslo uživatele root.
Instalovat Docker a Docker Compose
Nejprve budete muset do svého systému nainstalovat nejnovější verzi Docker a Docker Compose. Ve výchozím nastavení není Docker k dispozici ve výchozím úložišti CentOS 8. Budete tedy muset do svého systému přidat repozitář Docker CE. Můžete jej přidat pomocí následujícího příkazu:
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
Jakmile je repo vytvořeno, nainstalujte Docker CE pomocí následujícího příkazu:
dnf install docker-ce --nobest -y
Jakmile je Docker nainstalován, spusťte službu Docker a povolte její spuštění při restartu systému pomocí následujícího příkazu:
systemctl start docker
systemctl enable docker
Chcete-li nainstalovat Docker Compose, budete muset nainstalovat Curl a stáhnout binární soubor Docker Compose do vašeho systému. Můžete to udělat pomocí následujícího příkazu:
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
Vytvořit síť Docker
Dále budete muset vytvořit novou síť Docker pro spuštění kontejneru traefik. Můžete jej vytvořit s názvem "web" spuštěním následujícího příkazu:
docker network create web
Dále ověřte svou síť pomocí následujícího příkazu:
docker network ls
Měli byste získat následující výstup:
NETWORK ID NAME DRIVER SCOPE 76a9475e5ab0 bridge bridge local 2a3d79f64747 host host local 4c9123229eaa none null local 0b6e010b43d0 web bridge local
Instalace a konfigurace serveru Traefik Proxy
Než začnete, budete muset nainstalovat httpd-tools pro vygenerování šifrovaného hesla. Tento nástroj můžete nainstalovat pomocí následujícího příkazu:
dnf install httpd-tools -y
Po instalaci vygenerujte zašifrované heslo pomocí následujícího příkazu:
htpasswd -nb admin my_password
Měli byste získat následující výstup:
admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0
Dále vytvořte nový konfigurační soubor Traefik pomocí následujícího příkazu:
nano traefik.toml
Přidejte následující řádky včetně platného názvu domény, vašeho zabezpečeného hesla a portu:
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"
Po dokončení uložte a zavřete soubor. Poté vytvořte prázdný soubor, do kterého budou uloženy vaše informace Let’s Encrypt.
touch acme.json
Dále udělte správné oprávnění tomuto souboru pomocí následujícího příkazu:
chmod 600 acme.json
Vytvoření souboru Docker Compose
Dále budete muset vytvořit nový soubor docker-compose.yml a definovat svou doménu, port, síť a svazek.
Můžete jej vytvořit pomocí následujícího příkazu:
nano docker-compose.yml
Přidejte následující řádky:
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
Po dokončení uložte a zavřete soubor.
Sestavení kontejneru Traefik Docker
V tomto okamžiku je konfigurační soubor Traefik a Docker Compose připraven. Nyní vytvořte kontejner Traefik pomocí následujícího příkazu:
docker-compose up -d
Měli byste získat následující výstup:
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
Dále ověřte spuštěný kontejner pomocí následujícího příkazu:
docker ps
Měli byste získat následující výstup:
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
Přístup k webovému rozhraní Traefik
Nyní otevřete webový prohlížeč a přejděte na webové rozhraní Traefik pomocí adresy URL https://traefik.linuxbuz.com. Budete požádáni o zadání uživatelského jména a hesla:
Zadejte uživatelské jméno jako správce a heslo, které jste si dříve vygenerovali, a klikněte na Podepsat v knoflík. Na následující obrazovce byste měli vidět řídicí panel Traefik:
Klikněte na HEALTH tab. Zdravotní stav kontejneru Traefik byste měli vidět na následující obrazovce:
Závěr
Gratulujeme! úspěšně jste nainstalovali Traefik proxy na CentOS 8. Další informace naleznete v dokumentaci Traefik.