Cómo crear su propio servidor web Caddy en Linux

Caddy es un servidor web moderno y fácil de usar para Linux. Funciona agilizando el proceso de creación de archivos de configuración del sitio y certificados SSL. Este artículo lo guiará a través del proceso de instalación de Caddy en un servidor Ubuntu Linux. Además, también le mostrará cómo utilizar Caddy para implementar una página web sencilla, así como un proxy inverso SSL.

¿Por qué utilizar Caddy como servidor web?

Mientrasyson poderosos demonios de servidores web, pueden ser difíciles de manejar y complejos para un nuevo usuario. Caddy reduce esa complejidad al proporcionar el "Caddyfile", un único archivo plano con una sintaxis simple que es fácil de aprender incluso para principiantes.

Otro punto de venta de Caddy es que proporciona HTTPS para su servidor web desde el primer momento. Esto lo hace útil para los usuarios que encuentrandesalentador y complicado. Como tal, Caddy es perfecto si busca un servidor web "sin complicaciones" en Linux que sea fácil de mantener y usar.

Es bueno saberlo:aprende como puedes.

Instalación del carrito

El primer paso para instalar Caddy en Ubuntu Linux es asegurarse de tener las herramientas para importar las claves y la información del repositorio:

sudo apt install curl debian-keyring debian-archive-keyring

Obtenga la clave de firma del repositorio para Caddy del sitio web del desarrollador:

curl -fsSL 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

Descargue y guarde el archivo del repositorio del proyecto Caddy en el directorio “sources.list.d” de su máquina:

curl -fsSL 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy.list

Vuelva a cargar los repositorios aptos de su sistema ejecutando lo siguiente:

sudo apt update && sudo apt upgrade

Instale el paquete Caddy para su sistema usandoapt install:

sudo apt install caddy

Ejecutando su primer sitio web Caddy

Para ejecutar su primer sitio web, cree la carpeta raíz de su sitio en su directorio de inicio:

mkdir ~/my-first-website && cd ~/my-first-website

Crea un archivo index.html usando tu editor de texto favorito:

nano ./index.html

Pegue el siguiente bloque de código dentro de su nuevo archivo HTML:


<html>
<head> <title> Hello World! </title> </head>
<body>

<h1> Hello World! </h1>
<p> Hello MakeTechEasier! </p>

</body>
</html>

Guarde su archivo index.html y luego ejecute el siguiente comando:

caddy file-server --listen :8080

Confirme que su servidor web esté funcionando correctamente navegando hasta él con su navegador.

Crear un sitio web usando Caddyfiles

Si bien la herramienta CLI es excelente para ofrecer páginas web simples, Caddy también proporciona un “Caddyfile” fácil de usar para configuraciones más complejas. Para comenzar, cree un nuevo Caddyfile en “/etc/caddy” usando su editor de texto favorito:

sudo rm /etc/caddy/Caddyfile && sudo nano /etc/caddy/Caddyfile

Pega el siguiente bloque de código dentro de tu nuevo Caddyfile:

your-domain.com {
    redir https://www.{host}{uri}
}

www.your-domain.com {
    root * /var/www/html
    file_server
}

Nota:También puede alojar un sitio web solo de LAN utilizando Caddyfiles reemplazando "su-dominio.com" por "localhost".

Copie el archivo index.html de su directorio de inicio al “/var/www” de su sistema:

sudo mkdir /var/www/html/
sudo cp ~/my-first-website/index.html /var/www/html

Vaya a su registrador de DNS y asegúrese de que sus subdominios raíz y www tengan un registro A o AAAA que apunte a las direcciones IPv4 e IPv6 de su máquina.

Nota:No es necesario modificar ninguna configuración de DNS para sitios web solo de LAN, ya que Caddy generará un certificado autofirmado.

Habilite el servicio Caddy integrado en su máquina:

sudo systemctl enable --now caddy

Compruebe si su sitio web funciona correctamente navegando hasta su nombre de dominio.

Crear un proxy inverso SSL con Caddy

Al igual que Nginx y Apache, también puedes usar Caddy comopara un servicio interno en su máquina. Para hacer esto, abra el Caddyfile de su sistema:

sudo nano /etc/caddy/Caddyfile

Pega el siguiente bloque de código dentro de tu Caddyfile:

your-domain.com {
    reverse_proxy 127.0.0.1:LOCAL-PORT
}

Reemplace "LOCAL-PORT" con el puerto de su aplicación web. En mi caso, reemplazaré el mío con 3001 para redirigir todo el tráfico entrante a mi.

Guarde su Caddyfile, luego vuelva a cargar el servicio Caddy para aplicar su nueva configuración:

sudo systemctl reload caddy

Pruebe si su proxy inverso funciona correctamente navegando a su dominio utilizando su navegador web.

Es bueno saberlo:Obtenga más información sobre el cifrado web mediante.

Implementación de múltiples sitios web y servicios usando Caddy

También puede utilizar el mismo Caddyfile para servir sitios web y servidores proxy bajo el mismo host. Esto facilita la administración de múltiples servicios diferentes sin saturar el directorio de configuración de su servidor web.

Para empezar, vaya aPágina de descarga de Caddyluego escriba "caddy-dns" en la barra de búsqueda.

Busque el proveedor de DNS que administra su nombre de dominio. En mi caso estoy usandoOcéano Digital.

Seleccione su proveedor de DNS, luego haga clic en "Descargar" en la esquina superior derecha de la página. Esto descargará un binario Caddy personalizado con el módulo apropiado para su proveedor de DNS.

Detenga el servicio Caddy usando systemctl:

sudo systemctl disable --now caddy.service

Cree una copia de seguridad del archivo binario Caddy original y luego copie el binario personalizado en su directorio “/usr/bin/”.

cp /usr/bin/caddy ~/caddy.bin.bak
sudo rm /usr/bin/caddy
sudo cp ~/Downloads/caddy_linux_amd64_custom /usr/bin/caddy
sudo chmod +x /usr/bin/caddy

Pruebe si su binario Caddy personalizado funciona correctamente verificando su versión:

caddy --version

Habilitación de Caddy SSL para dominios comodín

Abra el Caddyfile de su sistema usando su editor de texto favorito:

sudo nano /etc/caddy/Caddyfile

Pega el siguiente bloque de código dentro de tu Caddyfile:

*.your-domain.com {
        tls {
                dns digitalocean API-KEY
    # Replace the value of digitalocean with your DNS provider.
        }

        @www host www.your-domain.com
        handle @www {
          root * /var/www/html
          file_server
        }

        @subdomain host subdomain.your-domain.com
        handle @uptime {
                reverse_proxy 127.0.0.1:LOCAL-PORT
        }

                handle {
                abort
        }
}

Obtenga una clave API de su proveedor de DNS. En DigitalOcean, puede obtener esto yendo a su panel de DigitalOcean y luego haciendo clic en API en la barra lateral izquierda de la página.

Haga clic en Generar nuevo token y luego proporcione los detalles de su clave API.

Copie su secreto de API, luego péguelo en la variable "API-KEY" en su Caddyfile.

Personalice el Caddyfile para su configuración específica y luego guárdelo.

Asegúrese de que su nombre de dominio tenga los registros A y AAAA apropiados para su dominio y subdominio.

Reinicie su demonio Caddy deshabilitado para aplicar su nueva configuración:

sudo systemctl enable --now caddy

Pruebe si su configuración "multiservicio" funciona correctamente abriendo ambos dominios en un navegador web.

Aprender a implementar servicios web simples y seguros usando Caddy es solo el primer paso para explorar el maravilloso mundo del autohospedaje en Linux. Sumérgete más profundamente en este universo.

Crédito de la imagen:Jonathan Ybema vía UnsplashyWikimedia Commons. Todas las modificaciones y capturas de pantalla realizadas por Ramces Red.