Si eres un Diseñador Web estarás en la constante necesidad de utilizar un servidor web, un software esencial para que los visitantes puedan ver tus sitios. Entre los más conocidos nos encontramos con Apache y Nginx, altamente utilizados por su buen rendimiento y la gran capacidad de gestionar peticiones (o usuarios). Si instalamos cualquier de ellos, añadimos la DNS (configurando el dominio), una ip fija, los puertos adecuados abiertos y algún certificado SSL de calidad… la web ya será visible para cualquier navegador. ¿Sencillo? ¡Para nada! Son necesarias un conjunto de habilidades que no esta al alcance de todos, por ello existen proveedor que te lo gestiona todo a cambio de un pago mensual; los conocerás como hostings de pago.
¿Y si os digo que hay una manera directa de montar un servidor web usando un solo comando? ¿Y si automatizara todas las acciones complejas como la renovación de certificados SSL y mantenerlo en segundo plano? ¿Y que es gratis? No, no os estoy engañando con promesas de feriante, es real y se llama Caddy: un servidor web Opensource escrito en Go que automatiza el protocolo HTTPS entre otras tareas.
Instalación
Si dispones de un MacOS.
brew install caddy
En caso de un Archlinux/Manjaro.
sudo pacman -S caddy2
O Debian/Ubuntu/Raspbian.
echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \
| sudo tee -a /etc/apt/sources.list.d/caddy-fury.list
sudo apt update
sudo apt install caddy
Y para resto de distribuciones (Fedora, RedHat, CentOS…) debes seguir las instrucciones de su documentación oficial.
Crear servidor de HTML o estáticos
Con Caddy es muy rápido montar un servidor web que se autogestionará sin intervención por nuestra parte. Solo hay que seguir unos pasos.
1. Creamos el directorio donde estará la web.
mkdir mi-web
2. Configuración
Caddy necesita un archivo donde le proporcionemos las instrucciones iniciales. Para ello creamos un archivo nuevo, que será su configuración, denominado Caddyfile (sin extensión). Debe estar dentro de la carpeta anterior.
Lo editamos con el siguiente contenido.
# Dominio, si buscas certificado SSL modificalo por https:// o deja midominio.localhost
http://midominio.localhost
# Ruta
root * /ruta/absoluta/carpeta/proyecto/mi-web
# Servimos contenido estático
file_server
3. Añadimos HTML.
Movemos la web o creamos un fichero nuevo con el nombre index.html
y un contenido como el siguiente.
Si vas a utilizar una web existente, recuerda que la primera página debe llamarse: index.html
.
<html>
<body>
Hola Caddy
</body>
</html>
4. Ejecutamos Caddy.
Abrimos el terminal y entramos en la carpeta.
cd mi-web
Ejecutamos Caddy.
caddy run
Para finalizar abrimos el navegador y nos movemos al siguiente dominio.
http://midominio.localhost
¡Ya está! ¿Ves que sencillo?
5. (Opcional) Servicio.
Para que se ejecute como un daemon, un servicio que lo mantenga activo en segundo plano, en primer lugar deberemos detenerlo. Puedes usar la combinación Ctrl+c
.
A continuación.
caddy start
En el caso de querer pararlo en algún momento.
caddy stop
O de ver su estado.
caddy reload
6. (Opcional) Activar https.
En el ejemplo desactiva los certificados SSL porque fallarán ya que se están ejecutando en tu equipo y no se ha configurado un DNS real que apunte a tu IP. Cuando se de el caso que quieras subirlo a un VPS/Servidor dedicado , recueda configurar las DNSs y en la configuración cambiar.
http://midominio.com
por simplmente
midominio.localhost
o también.
https://midominio.com
Al levantarlo se encargará de todas las gestiones necesarias, conectandose a Let’s Encrypt y renovandolo antes de que pueda caducar.
En caso de trabajar en local debes usar un certificado autofirmado, ya que será imposible de otra manera si estas desarrollando en tu equipo.
midominio.localhost
tls internal
Extra: Configuraciones útiles
PHP
midominio.com
root * /ruta/absoluta/carpeta/proyecto
php_fastcgi * localhost:9000
file_server
Django
midominio.com
encode gzip zstd
root * /ruta/absoluta/carpeta/proyecto
@notStatic {
not path /static/* /media/*
}
reverse_proxy @notStatic localhost:8000
file_server
Reverse proxy
midominio.com
encode gzip zstd
reverse_proxy localhost:7404
Redireccionar www a no www (www.midominio.com -> midominio.com)
www.midominio.com {
redir https://midominio.com{uri}
}
Redireccionar no www a www (www.midominio.com -> midominio.com)
midominio.com {
redir https://www.midominio.com{uri}
}
Extra: Levantar servidor temporal de estáticos con un comando
Situate en el terminal dentro de la carpeta donde están los ficheros o la página web. Después levanta el servidor caddy.
caddy file-server --listen :2015
Ahora solo queda abrir una pestaña de tu navegador favorito con localhost:2015
.
{{ comments.length }} comentarios