No pasó un día desde que configuré el proxy inverso con nginx y vi la imagen de abajo.

¿No es posible... que la era de nginx haya terminado?
No lo podía creer.
Decidí migrar de nuevo de nginx a caddy.
1. ¿Qué es caddy?
Caddy es un servidor web moderno y proxy inverso, escrito en Go.
Es popular por su configuración sencilla, HTTPS automático y alto rendimiento.
Según lo dicho por el hermano chatgpt, es como se muestra en la tabla abajo.
Ítem | Caddy | Nginx |
|---|---|---|
🛠️ Dificultad de configuración | Muy fácil ( | Intermedio a difícil ( |
🔐 Soporte HTTPS | Emisión y renovación automática (Let's Encrypt) | Necesita configuración manual (certbot, etc.) |
🚀 Instalación y ejecución | Archivo ejecutable único, listo para usar | Se necesita instalación de paquetes, configuración y ejecución |
📦 Funciones básicas | Proxy inverso, archivos estáticos, autenticación, redirecciones, etc. integradas | Tiene varias funciones pero algunas necesitan instalación de módulos |
🔧 Flexibilidad de configuración | Estructura básica intuitiva, algunas limitaciones en enrutamiento complejo | Configuración altamente flexible (aunque compleja) |
📈 Rendimiento | Alto rendimiento (incluye soporte HTTP/3) | Alto rendimiento (comprobado en tráfico masivo) |
📋 Documentación y comunidad | Pequeña pero en rápido crecimiento | Comunidad muy grande y madura |
⚙️ Propósitos de uso | Despliegue rápido, HTTPS sencillo, centrado en desarrolladores | Configuraciones avanzadas, operación de infraestructuras complejas |
De todas formas, solo uso el proxy inverso para asignaciones de puertos.
En este aspecto, caddy parecía más simple.
2. Migrar de nginx a caddy
Se dice que los soldados romanos quemaban sus barcos antes de ir a la guerra.
Con ese pensamiento, primero eliminé nginx y comencé.
No importa mucho ya que mi página no tenía ni 100 visitas al día.
brew uninstall nginx
Luego eliminé la carpeta innecesaria dentro de /opt/homebrew/etc.
Puedes hacerlo con el siguiente comando.
sudo rm -rf /opt/homebrew/etc/nginx
Inmediatamente instalé caddy y configuré el Caddyfile, pero no funcionaba.
Resulta que no detuve el servicio nginx, por lo que seguía ocupando el puerto incluso después de la desinstalación.
Quienes lean esto, no cometan el mismo error. Asegúrate de verificar los puertos antes de instalar caddy.
Usa el siguiente comando para verificar los puertos.
lsof significa List Open files y -i significa internet.
lsof -i :80
Por esto perdí 2 o 3 horas... ¡Qué persona tan insensata soy!
Aunque detuviera el puerto, no funcionaba, así que recurrí al remedio universal de reiniciar.
Luego creé un archivo llamado Caddyfile en la carpeta /opt/homebrew/etc.
Por cierto, la extensión no es necesaria.
sudo touch /opt/homebrew/etc/Caddyfile
open /opt/homebrew/etc/CaddyfileAsí se abrirá el Caddyfile en el editor de texto.
Introduce el siguiente contenido.
example.com, www.example.com {
reverse_proxy localhost:3000
}En example.com puedes introducir el dominio que desees.
Si tienes dos dominios, sepáralos con comas.
Como cualquiera que haya usado nginx sabe, la configuración es extremadamente simple.
Luego inicia el servidor caddy.
brew services start caddy
Y de manera sorprendente, ya tiene el certificado emitido.
Como también se puede auto renovar, ya tengo una preocupación menos.
3. Opiniones
Cuando empecé con next.js, la mayoría de los artículos sobre HTTPS estaban configurados con server.js.
¿Por qué no me hablaron de caddy...?
Creo que es mucho mejor instalar nginx o caddy que otras formas.
Voy a escribir un artículo simple sobre esto.
댓글을 불러오는 중...