Como Instalar y Configurar Caddy Web Server en Ubuntu 16.04 | 18.04

En nuestros muchos tutoriales hemos analizado cientos de tecnologías diferentes.

En casi todos los art√≠culos, hemos basado nuestro trabajo en servidores web basados ‚Äč‚Äčen Apache o NGINX.

Sin embargo, hay un nuevo servidor web que est√° ganando popularidad debido a su simplicidad general.

¬ŅQue es Caddy Web Server?

Este servidor web está completamente escrito en Go, y se lanzó por primera vez en 2015.

La configuración de Caddy web server se basa Caddyfile y, como veremos en un ejemplo, estos archivos son increíblemente fáciles de escribir y administrar.

Sin embargo, lo que realmente nos entusiasm√≥ es el hecho de que integra Let’s Encrypt de forma predeterminada y sin ninguna configuraci√≥n manual.

Características del Caddy Web Server

HTTPS autom√°tico activado de forma predeterminada, a trav√©s de Let’s Encrypt
HTTP/2 por defecto
Archivos est√°ticos en el directorio de trabajo actual
Todos los tipos de servidores, directivas, proveedores de DNS y otras características son solo complementos
Se puede usar como una biblioteca en otros programas Go
Configurable para ejecutar comandos del sistema al inicio y apagado
Caddy es un archivo ejecutable √ļnico sin dependencias, excepto del n√ļcleo.

Impresionante ¬Ņverdad? Y esto ni siquiera es una lista exhaustiva de las funciones disponibles!

Ahora que estás emocionado. Echemos un vistazo a cómo instalar y usar Caddy en Ubuntu 16.04.

Como Instalar el servidor web Caddy en Ubuntu 16.04 | 18.04

Caddy proporciona un script de instalación que descarga e instala los binarios de Caddy. Como se anticipó en la introducción, este servidor web no tiene dependencias.

Ejecute el siguiente comando para instalarlo:

curl https://getcaddy.com | bash

Durante la instalaci√≥n, el script le pedir√° su contrase√Īa para obtener privilegios administrativos o de root.

El resultado ser√°:

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5593 100 5593 0 0 3696 0 0:00:01 0:00:01 –:–:– 3696
Downloading Caddy for linux/amd64…
https://caddyserver.com/download/linux/amd64?plugins=
Download verification OK
Extracting…
Putting caddy in /usr/local/bin (may require password)
[sudo] password for gmolica:
Caddy 0.10.6
Successfully installed

Una vez que el script haya completado su trabajo, los binarios de Caddy estar√°n instalados y listos para usar, y, como podemos ver, estar√°n en el /usr/local/bin/.

Es importante tener en cuenta que el proceso de instalación no creará ninguna configuración de todo el sistema, por lo que esta parte depende de usted.

Afortunadamente, el proceso es simple.

Como Configurar Caddy en Ubuntu 16.04 | 18.04

Por defecto, Caddy usará el directorio desde el que se está ejecutando como la raíz del sitio, por lo que, si lo ejecuta $HOME, lo usará como su raíz.

Esto significa, por supuesto, que con Caddy es realmente f√°cil trabajar en sitios locales.

Escriba lo siguiente para Ejecutar:

caddy

El terminal mostrar√° el siguiente mensaje:

Activating privacy features… done.
http://:2015
WARNING: File descriptor limit 1024 is too low for production servers.
At least 8192 is recommended. Fix with “ulimit -n 8192”.

En este momento, podemos ignorar la ADVERTENCIA y tener en cuenta que se Caddy se ejecuta en localhost en el puerto 2015.

Ir con un navegador web a http://your_server_IP:2015 podría redirigir a una 404 Not Found o una página de error.

Esto se debe al hecho de que el directorio que Caddy está utilizando ya que su raíz no contiene un sitio web.

Antes de continuar, cree los directorios necesarios:

Crear directorios requeridos

En primer lugar, cree un directorio que contendr√° el principal Caddyfile:

mkdir /etc/caddy

Cambie su propietario al usuario raíz y su grupo a www-data:

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

Cree un segundo directorio, donde Caddy almacenar√° los certificados SSL y las claves privadas:

mkdir /etc/ssl/caddy

Cambie su propietario a www-data:

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

Cambie los permisos, de la siguiente manera:

chmod 0770 /etc/ssl/caddy

A continuación, cree el directorio que contendrá el sitio /var/www:

mkdir /var/www

Este directorio ser√° propiedad de www-data:

chown www-data: www-data /var/www

Descargue el archivo de la unidad Caddy

Por defecto, Caddy no se instalar√° como un servicio systemd, pero el proyecto proporciona un archivo de unidad oficial. Desc√°rgalo con el siguiente comando:

curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service

Mirando este archivo notaremos las siguientes líneas:

; Letsencrypt-issued certificates will be written to this directory.
Environment=CADDYPATH=/etc/ssl/caddy

; Always set “-root” to something safe in case it gets forgotten in the Caddyfile.
ExecStart=/usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/var/tmp

Es por eso que configuramos esos directorios en los pasos anteriores.

Creamos un archivo vacío Caddyfile:

sudo touch /etc/caddy/Caddyfile

Ejecute los siguientes comandos para permitir que Caddy se ejecute en el arranque:

systemctl daemon-reload
systemctl enable caddy

Comprobar el estado de Caddy

systemctl status caddy

———————————-
√Ę caddy.service – Caddy HTTP/2 web server
Loaded: loaded (/etc/systemd/system/caddy.service; enabled; vendor preset: en
Active: inactive (dead)
Docs: https://caddyserver.com/docs

Permitir conexiones HTTP y HTTPS

Mediante ufw, permita las conexiones HTTP y HTTPS para que Caddy pueda servir correctamente a los usuarios:

ufw allow http
ufw allow https

Probar Caddy web server

El √ļltimo paso es probar Caddy para asegurarse de que todo se haya hecho correctamente.

Editar Caddyfile

Anteriormente, creamos un vacío Caddyfile. Ahora, es hora de poblarlo. Abrir con un editor de texto:

$EDITOR /etc/caddy/Caddyfile

En ese archivo colocamos:

example.com {
root /var/www
gzip
tls [email protected]
}

Nota: la l√≠nea tls contiene la direcci√≥n de correo electr√≥nico que utilizar√° Caddy para obtener certificados SSL de Let’s Encrypt.

Guardar y cerrar.

Iniciar Caddy:

systemctl start caddy

Crear una p√°gina web

Cree una p√°gina web para probar Caddy:

$ echo ‘<h1>Website using Caddy</h1>’ | sudo tee /var/www/index.html

Use la misma opcion que configuró en Caddyfile.

Ahora, con un navegador web, solo ve https://example.com y ver√°s nuestra p√°gina de prueba.

¬°Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)