Cómo instalar y usar Traefik como proxy inverso con Docker en CentOS 8

Iniciar sesión

Traefik es un proxy inverso HTTP de código abierto y un equilibrador de carga que lo ayuda a implementar microservicios fácilmente. Puede integrarlo fácilmente con los componentes de su infraestructura, incluidos Docker, Kubernetes, Docker Swarm, Rancher, AWS y muchos más. Si desea ejecutar varias aplicaciones en el mismo host Docker, puede usar Traefik como proxy inverso para exponer los puertos 80 y 443 al resto del mundo.

En este tutorial, le mostraremos cómo instalar y configurar Traefik como proxy inverso en CentOS 8.

requisitos previos

  • Un servidor que ejecuta CentOS 8.
  • Un nombre de dominio v√°lido apuntado con la IP de su servidor.
  • Se configura una contrase√Īa de root en el servidor.

Instalar Docker y Docker Compose

Primero, deber√° instalar la √ļltima versi√≥n de Docker y Docker Compose en su sistema. De forma predeterminada, Docker no est√° disponible en el repositorio predeterminado de CentOS 8. Por lo tanto, deber√° agregar el repositorio Docker CE en su sistema. Puedes agregarlo con el siguiente comando:

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

Una vez creado el repositorio, instale Docker CE con el siguiente comando:

dnf install docker-ce --nobest -y

Una vez que Docker esté instalado, inicie el servicio Docker y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:

systemctl start docker
systemctl enable docker

Para instalar Docker Compose, deber√° instalar Curl y descargar el binario de Docker Compose en su sistema. Puedes hacerlo con el siguiente 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

Crear red Docker

A continuaci√≥n, deber√° crear una nueva red Docker para ejecutar el contenedor traefik. Puede crearlo con el nombre ¬ęweb¬Ľ ejecutando el siguiente comando:

docker network create web

A continuación, verifique su red con el siguiente comando:

docker network ls

Deberías obtener el siguiente resultado:

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

Instalar y configurar el proxy Traefik

Antes de comenzar, deber√° instalar httpd-tools para generar la contrase√Īa cifrada. Puede instalar esta herramienta con el siguiente comando:

dnf install httpd-tools -y

Una vez instalado, genera la contrase√Īa cifrada con el siguiente comando:

htpasswd -nb admin my_password

Deberías obtener el siguiente resultado:

admin:$apr1$wpdR.4yZ$UpbjGS7ZFq4pZHalhH1Tl0

A continuación, cree un nuevo archivo de configuración de Traefik con el siguiente comando:

nano traefik.toml

Agregue las siguientes l√≠neas, incluido su nombre de dominio v√°lido, su contrase√Īa segura y su puerto:

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"

Guarde y cierre el archivo cuando haya terminado. Luego, cree un archivo vac√≠o para almacenar su informaci√≥n de Let’s Encrypt.

touch acme.json

A continuación, otorgue el permiso adecuado a este archivo con el siguiente comando:

chmod 600 acme.json

Crear un archivo de redacción de Docker

A continuación, deberá crear un nuevo archivo docker-compose.yml y definir su dominio, puerto, red y volumen.

Puedes crearlo con el siguiente comando:

nano docker-compose.yml

Agregue las siguientes líneas:

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

Guarde y cierre el archivo cuando haya terminado.

Crear un contenedor Docker de Traefik

En este punto, el archivo de configuración de Traefik y Docker Compose está listo. Ahora, construya el contenedor Traefik con el siguiente comando:

docker-compose up -d

Deberías obtener el siguiente resultado:

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

A continuación, verifique el contenedor en ejecución con el siguiente comando:

docker ps

Deberías obtener el siguiente resultado:

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

Acceder a la interfaz web de Traefik

Ahora, abra su navegador web y acceda a la interfaz web de Traefik usando la URL https://traefik.linuxbuz.com. Se le pedir√° que proporcione un nombre de usuario y una contrase√Īa: Anuncio

Iniciar sesión

Proporcione el nombre de usuario como administrador y la contrase√Īa que gener√≥ anteriormente y haga clic en el Se√Īal en bot√≥n. Deber√≠a ver el tablero de Traefik en la siguiente pantalla:

Tablero Traefik

Haga clic en el SALUD pesta√Īa. Deber√≠a ver el estado de salud del contenedor Traefik en la siguiente pantalla:

Traefik Estadísticas de tráfico

Conclusión

¡Felicidades! ha instalado correctamente el proxy Traefik en CentOS 8. Para obtener más información, visite Traefik documentación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *