Caddy como proxy inverso

Caddy como proxy inverso
Logo de caddy

Antes de comenzar, ¿Qué es un proxy inverso? un proxy inverso es un servidor que se sitúa delante de los servidores web y reenvía las solicitudes del cliente (por ejemplo, el navegador web) a esos servidores web. Hasta ahora yo estaba usando Nginx Proxy Manager pero en la última actualización me daba bastantes errores en los logs. Busqué otro sencillo y que consumiera poco, me decidí por Caddy.

Lo instalé con docker-compose

version: "3.7"

services:
  caddy:
    image: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./data:/data
      - ./config:/config
    restart: unless-stopped
    container_name: caddy

Creamos el archivo Caddyfile

ejemplo.servidor.es {
    reverse_proxy http://192.168.1.17:81
}
ejemplo_protegido.servidor.es {
    reverse_proxy http://192.168.1.17:82
}

Creamos el contenedor:

docker-compose up -d

Ejecutamos un comando para crear una contraseña para las webs que quieras con autenticación básica:

docker exec -it caddy caddy hash-password --plaintext "1234"

Esto devuelve un hash, anótalo

Y por último modificamos el archivo Caddyfile introduciendo la autenticación básica en los subdominios en los que necesite:

(basic-auth) {
    basicauth / {
        user hash_anterior
    }
}

ejemplo.servidor.es {
    reverse_proxy http://192.168.1.17:81
}

ejemplo_protegido.servidor.es {
    import basic-auth
    reverse_proxy http://192.168.1.17:82
}

A partir de ahora cuando quieras entrar a ejemplo_protegido.servidor.es deberás poner 'user' y '1234'.

Reiniciamos el contenedor:

docker restart caddy

Visto en Caddy. Crear usuario y contraseña. uGeek Blog, Proxy Inverso con Caddy. uGeek Blog

Salu2

Document