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:
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.