Cómo Hospedar un Sitio Web con HTTPS Usando Caddy en Linux

A web server is a server-side application designed to process HTTP requests between client and server. HTTP is the basic and very widely used network protocol.

El servidor HTTP de Apache jugó un papel importante en el diseño de lo que es la web hoy en día. Solo tiene una cuota de mercado del 37.3%. Nginx ocupa el segundo lugar en la lista con una cuota de mercado del 32.4%. Microsoft IIS y LiteSpeed ocupan los puestos 3 y 4 con una cuota de mercado del 7.8% y 6.9% respectivamente.

Recientemente, me encontré con un servidor web llamado Caddy. Cuando intenté averiguar sus características y lo implementé para probarlo, debo decir que es increíble. Un servidor web que es portátil y no necesita ningún archivo de configuración. Pensé que era un proyecto muy interesante y quería compartirlo contigo. ¡Aquí hemos dado una oportunidad a Caddy!

¿Qué es Caddy?

Caddy es una alternativa a un servidor web Apache, fácil de configurar y usar. Matthew Holt – El líder del proyecto de Caddy afirma que Caddy es un servidor web de propósito general, diseñado para los humanos y probablemente sea el único de su tipo.

Caddy es el primer servidor web que puede adquirir y renovar automáticamente los certificados SSL/TLS utilizando Let’s Encrypt.

Características de Caddy

  1. Peticiones HTTP rápidas utilizando HTTP/2.
  2. Servidor web capaz con la mínima configuración y despliegue sin complicaciones.
  3. La encriptación TLS garantiza la encriptación entre las aplicaciones y los usuarios que se comunican a través de Internet. Puede usar sus propias claves y certificados.
  4. Fácil de desplegar/usar. Solo un archivo único y sin dependencia de ninguna plataforma.
  5. No se requiere instalación.
  6. Ejecutables portátiles.
  7. Ejecución en múltiples CPUs/Núcleos.
  8. Tecnología avanzada de WebSockets: sesión de comunicación interactiva entre el navegador y el servidor.
  9. Genera documentos Markdown en el servidor al vuelo.
  10. Soporte completo para el último IPv6.
  11. Crea un registro en un formato personalizado.
  12. Sirve FastCGI, Proxy Inverso, Reescritura y Redirecciones, URL Limpia, compresión Gzip, Exploración de directorios, Virtual Hosts y Encabezados.
  13. Disponible para todas las plataformas conocidas: Windows, Linux, BSD, Mac, Android.

¿Qué hace diferente a Caddy?

  1. Caddy tiene como objetivo servir la web como debería ser en el año 2020 y no de manera tradicional.
  2. Está diseñado no solo para atender solicitudes HTTP, sino también a humanos.
  3. Cargado con las últimas características: HTTP/2, IPv6, Markdown, WebSockets, FastCGI, plantillas y otras características listas para usar.
  4. Ejecuta los ejecutables sin necesidad de instalarlos.
  5. Documentación detallada con la menor descripción técnica posible.
  6. Desarrollado teniendo en cuenta las necesidades y la facilidad de diseño, desarrollo y publicación de blogs.
  7. Soporte para Virtual Host: define tantos sitios como desees.
  8. Adecuado para ti, sin importar si tu sitio es estático o dinámico. Si eres humano, es para ti.
  9. Concéntrate en qué lograr y no en cómo lograrlo.
  10. Disponibilidad de soporte para la mayoría de las plataformas: Windows, Linux, Mac, Android, BSD.
  11. Por lo general, tienes un archivo Caddy por sitio.
  12. Configuración en menos de 1 minuto, incluso si no eres muy hábil con la computadora.
Entorno de prueba

I will be testing it on the CentOS server, as well as Debian Server, but the same instructions also work on RHEL and Debian based distributions. For both the server I am going to use 64-bit executables.

Operating Systems: CentOS 8 and Debian 10 Buster
Caddy Version: v2.0.0

Instalación del servidor web Caddy en Linux

No importa en qué plataforma estés ni qué tipo de arquitectura estés utilizando, Caddy proporciona paquetes binarios listos para usar que se pueden instalar utilizando tu administrador de paquetes predeterminado, como se muestra.

Instala Caddy en Fedora, RedHat, CentOS

Estaremos instalando la última versión del servidor web Caddy desde el repositorio CORP en Fedora o RHEL/CentOS 8.

# dnf install 'dnf-command(copr)'
# dnf copr enable @caddy/caddy
# dnf install caddy

En RHEL/CentOS 7 usa los siguientes comandos.

# yum install yum-plugin-copr
# yum copr enable @caddy/caddy
# yum install caddy

Instala Caddy en Debian y Ubuntu

$ 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

Una vez instalado el servidor web Caddy, puedes iniciar, habilitar y verificar el estado del servicio utilizando los siguientes comandos systemctl.

# systemctl start caddy
# systemctl enable caddy
# systemctl status caddy

Ahora abre tu navegador y apunta tu navegador a la siguiente dirección y deberías poder ver la página de bienvenida de Caddy.

http://Server-IP
OR
http://yourdomain.com
Caddy Web Server

Configuración de dominios con Caddy

Para configurar un dominio, primero necesitas apuntar los registros DNS A/AAAA de tu dominio a este servidor en tu panel de control de DNS. Luego, crea un directorio raíz de documentos para tu sitio web "ejemplo.com" en la carpeta /var/www/html como se muestra.

$ mkdir /var/www/html/example.com

Si estás utilizando SELinux, necesitas cambiar el contexto de seguridad del archivo para el contenido web.Ahora abre y edita el archivo de configuración de caddy en /etc/caddy/Caddyfile.

# chcon -t httpd_sys_content_t /var/www/html/example.com -R
# chcon -t httpd_sys_rw_content_t /var/www/html/example.com -R

Ahora abre y edita el archivo de configuración de Caddy en /etc/caddy/Caddyfile.

# vim /etc/caddy/Caddyfile

Reemplaza :80 con tu nombre de dominio y cambia la raíz del sitio a /var/www/html/example.com como se muestra.

Configure Caddy Web Server

Recarga el servicio de Caddy para guardar el cambio de configuración.

# systemctl reload caddy

Ahora crea cualquier página HTML (puedes crear la tuya propia) y guarda la página en el directorio raíz del documento para tu sitio web.

# touch /var/www/html/example.com/index.html

Agrega el siguiente código HTML de muestra a la página de inicio de tu sitio web.

# echo '<!doctype html><head><title>Caddy Test Page at TecMint</title></head><body><h1>Hello, World!</h1></body></html>' | sudo tee /var/www/html/index.html

Ahora visita nuevamente tu sitio para ver tu página.

Hosting Website with Caddy

Si todo está configurado correctamente, tu dominio se servirá a través de un protocolo HTTPS indicando que tu conexión es segura.

Conclusión

Si eres nuevo y quieres configurar un servidor web sin ensuciarte las manos con la configuración, esta herramienta es para ti. Incluso si eres un usuario experimentado que necesita un servidor web instantáneo y simple, Caddy vale la pena probarlo. Con un poco de configuración, también puedes establecer permisos de carpeta, control de autenticación, páginas de error, Gzip, redireccionamiento HTTP y otros, si necesitas configurar un servidor web más complejo y avanzado.

No consideres a Caddy como un reemplazo de Apache o Nginx. Caddy no está diseñado para manejar entornos de producción de alto tráfico. Está diseñado para una configuración rápida de servidor web cuando tu preocupación es la velocidad y la fiabilidad.

Referencias

Guía completa del usuario / Documentación completa del Servidor Web Caddy

Hemos presentado esta documentación que tiene como objetivo una revisión rápida e instrucciones de instalación con imágenes donde sea necesario. Si encuentras cualquier ventaja/desventaja del proyecto o cualquier sugerencia, puedes proporcionárnosla en nuestra sección de comentarios.

Para mí, este proyecto aún es joven, pero funciona sin problemas y parece poderoso y prometedor. El mayor punto a favor que veo es que Caddy no necesita llevar su archivo de configuración a todas partes. Su objetivo es proporcionar lo mejor de Nginx, Lighttpd, vagrant y Websocketd. Eso es todo desde mi lado. Mantente conectado a Tecmint. Felicitaciones.

Source:
https://www.tecmint.com/install-caddy-web-server-in-centos-ubuntu/