Migrar de nginx a caddy

힘센캥거루
2025년 5월 25일(수정됨)
69
nextjs

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

Migrar de nginx a caddy-1

¿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 (Caddyfile)

Intermedio a difícil (nginx.conf)

🔐 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
Migrar de nginx a caddy-2

Luego eliminé la carpeta innecesaria dentro de /opt/homebrew/etc.

Puedes hacerlo con el siguiente comando.

sudo rm -rf /opt/homebrew/etc/nginx
Migrar de nginx a caddy-3

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
Migrar de nginx a caddy-4

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/Caddyfile

Así 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.

댓글을 불러오는 중...