Cómo alojar un sitio web con Caddy en Ubuntu 18.04

Caddy, también conocido como servidor web Caddy, es un servidor web de código abierto escrito en lenguaje Go. Por defecto, Caddy descarga e instala automáticamente certificados TLS para tus sitios. Puedes utilizar Caddy para servir tu sitio estático con compresión, evaluación de plantillas, renderizado Markdown y mucho más. Es un servidor web moderno, preparado para empresas y multiplataforma que admite alojamiento virtual, HTTP/2, WebSockets, FastCGI, Markdown y mucho más. Viene con un montón de plugins que te ayudan a ampliar la funcionalidad de Caddy.

En este tutorial, explicaremos cómo alojar un sitio web con un servidor web Caddy en Ubuntu 18.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 18.04.
  • Un nombre de dominio válido apuntado con la IP de tu servidor. En este tutorial, utilizaremos caddy.linuxbuz.com.
  • Una contraseña de root configurada en tu servidor.

Cómo empezar

Antes de empezar, es una buena idea actualizar los paquetes de tus sistemas a la última versión. Puedes actualizar todos los paquetes con el siguiente comando:

apt-get update -y
apt-get upgrade -y

Una vez actualizados todos los paquetes, reinicia tu sistema para aplicar los cambios.

Instalar Caddy

Por defecto, Caddy no está disponible en el repositorio por defecto de Ubuntu 18.04. Así que puedes instalarlo descargando el script de instalación de Caddy proporcionado por Caddy.

Primero, instala el paquete curl con el siguiente comando:

apt-get install curl -y

Una vez instalado, ejecuta el siguiente comando para instalar el servidor web Caddy en tu sistema.

curl https://getcaddy.com | bash -s personal hook.service

Una vez que la instalación se haya completado con éxito, deberías obtener la siguiente salida:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7380  100  7380    0     0   266k      0 --:--:-- --:--:-- --:--:--  277k
Downloading Caddy for linux/amd64 (personal license)...
Download verification OK
Extracting...
Putting caddy in /usr/local/bin (may require password)
v1.0.4
Successfully installed

Donde:

La opción -s personal se utiliza para especificar una licencia personal y hook.service es un complemento que te permite acceder al archivo de unidad systemd que puedes utilizar para gestionar Caddy como un servicio systemd.

A continuación, puedes ver la versión instalada de Caddy con el siguiente comando:

caddy -version

Deberías ver la siguiente salida:

v1.0.4

A continuación, instala Caddy como un servicio systemd mediante el siguiente comando:

caddy -service install

A continuación, inicia el servicio Caddy y habilítalo para que se inicie al arrancar con el siguiente comando:

systemctl start caddy
systemctl enable caddy

A continuación, verifica el estado del servicio Caddy con el siguiente comando:

systemctl status caddy

Deberías obtener la siguiente salida:

? caddy.service - Caddy's service
   Loaded: loaded (/etc/systemd/system/caddy.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2020-04-20 05:49:04 UTC; 7s ago
 Main PID: 1722 (caddy)
    Tasks: 10 (limit: 2359)
   CGroup: /system.slice/caddy.service
           ??1722 /usr/local/bin/caddy

Apr 20 05:49:04 ubuntu1804 systemd[1]: Started Caddy's service.
Apr 20 05:49:04 ubuntu1804 caddy[1722]: Activating privacy features... done.
Apr 20 05:49:04 ubuntu1804 caddy[1722]: Serving HTTP on port 2015
Apr 20 05:49:04 ubuntu1804 caddy[1722]: http://:2015

Crear un directorio de sitios web

A continuación, tendrás que crear una estructura de directorios y un archivo índice de muestra para tu sitio web.

En primer lugar, crea un directorio raíz de documentos con el siguiente comando:

mkdir -p /var/www/caddy.linuxbuz.com

A continuación, crea un archivo index.html con el siguiente comando:

nano /var/www/caddy.linuxbuz.com/index.html

Añade el siguiente contenido:

<!doctype html>
<head><title>Caddy Sample Page</title></head>
<body>
<h1>Welcome to Caddy web server</h1>
</body>
</html>

Guarda y cierra el archivo cuando hayas terminado. A continuación, proporciona el permiso adecuado al directorio raíz de la web:

chown -R www-data:www-data /var/www/caddy.linuxbuz.com

Configurar Caddy Webserver

A continuación, tendrás que crear un archivo de configuración de host virtual para servir los archivos de tu sitio web a Internet.

Primero, crea un directorio para almacenar los archivos de configuración de Caddy:

mkdir -p /etc/caddy

A continuación, cambia la propiedad del caddy a www-datos con el siguiente comando:

chown -R www-data:www-data /etc/caddy

A continuación, crea un archivo de configuración principal de Caddy con el siguiente comando:

nano /etc/caddy/Caddyfile

Añade las siguientes líneas:

caddy.linuxbuz.com {
    root /var/www/caddy.linuxbuz.com
}

Guarda y cierra el archivo cuando hayas terminado. A continuación, ejecuta el siguiente comando para servir tu sitio a través de HTTPS utilizando Let’s Encrypt:

caddy -agree -conf /etc/caddy/Caddyfile -email [email protected]

Deberías obtener el siguiente resultado:

Activating privacy features... 2020/04/20 05:57:36 [INFO] acme: Registering account for [email protected]
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] acme: Obtaining bundled SAN certificate
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] AuthURL: https://acme-v02.api.letsencrypt.org/acme/authz-v3/4067652622
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] acme: Could not find solver for: tls-alpn-01
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] acme: use http-01 solver
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] acme: Trying to solve HTTP-01
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] Served key authentication
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] Served key authentication
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] Served key authentication
2020/04/20 05:57:37 [INFO] [caddy.linuxbuz.com] Served key authentication
2020/04/20 05:57:44 [INFO] [caddy.linuxbuz.com] The server validated our request
2020/04/20 05:57:44 [INFO] [caddy.linuxbuz.com] acme: Validations succeeded; requesting certificates
2020/04/20 05:57:45 [INFO] [caddy.linuxbuz.com] Server responded with a certificate.
done.

Serving HTTPS on port 443 
https://caddy.linuxbuz.com


Serving HTTP on port 80 
http://caddy.linuxbuz.com

En este punto, Caddy está configurado y protegido con Let’s Encrypt. Ahora puedes proceder a acceder a la interfaz web de Caddy.

Acceder a la interfaz web de Caddy

Ahora, abre tu navegador web y escribe la URL https://caddy.linuxbuz.com. Se te redirigirá a la página de Caddy en la siguiente pantalla:

Servidor web Caddy

Conclusión

En esta guía, hemos aprendido a alojar un sitio web con un servidor web Caddy. También hemos aprendido a protegerlo con Let’s Encrypt SSL. Espero que ahora puedas utilizar fácilmente Caddy como servidor web alternativo.

También te podría gustar...