Migrar sitios web NGINX al servidor Caddy de ServBay
ServBay es un potente entorno de desarrollo web local que integra varios servidores web populares, incluidos Caddy, NGINX y Apache. ServBay viene preconfigurado con reglas comunes de reescritura de URL para estos servidores, especialmente para Caddy y NGINX, simplificando enormemente la configuración para los desarrolladores.
Este artículo es una guía detallada sobre cómo migrar perfectamente un sitio web NGINX existente al servidor Caddy integrado en ServBay. Usaremos como ejemplo el popular framework PHP Laravel y el sistema de gestión de contenidos WordPress para demostrar todo el proceso de migración.
Soporte integral de ServBay para servidores web
ServBay ofrece soporte completo para Caddy, NGINX y Apache, permitiéndote cambiar fácilmente el servidor web predeterminado según las necesidades de tu proyecto. Consulta la documentación Cómo cambiar el servidor web predeterminado para más detalles.
Descripción general
Migrar un sitio web de un servidor a otro implica transferir archivos de configuración y archivos del sitio. En ServBay, el proceso para migrar a Caddy está diseñado para ser sumamente sencillo. Para la gran mayoría de frameworks PHP y sistemas CMS (como Laravel, WordPress, Symfony, CodeIgniter, Drupal, Joomla y otros), ServBay ya ofrece soporte listo para usar, normalmente sin necesidad de editar manualmente el archivo de configuración de Caddy. ServBay genera automáticamente el archivo Caddyfile basándose en la configuración de tu sitio web desde la interfaz gráfica (GUI).
Preparativos antes de la migración
Antes de iniciar cualquier operación de migración, asegúrate de lo siguiente:
- Respalda los archivos del sitio: Realiza una copia de seguridad completa de todos los archivos y carpetas en la raíz de tu sitio web.
- Respalda la base de datos: Haz una copia de seguridad de la base de datos utilizada por el sitio (por ejemplo: MySQL, PostgreSQL, MongoDB, etc.). ServBay incluye herramientas integradas para gestión de bases de datos y también soporta copias de seguridad manuales.
- Instala ServBay: Asegúrate de haber instalado correctamente y tener corriendo ServBay en macOS.
- Confirma la ubicación de los archivos: Coloca los archivos de tu sitio web en el directorio raíz predeterminado de ServBay
/Applications/ServBay/www
o en alguna subcarpeta. Por ejemplo, si tu proyecto se llamamyproject
, colócalo en/Applications/ServBay/www/myproject
.
Cómo funciona Caddy en ServBay
Entender cómo ServBay maneja la configuración de Caddy es fundamental para la migración. A diferencia de la gestión manual del Caddyfile, ServBay te permite añadir y configurar sitios web fácilmente desde la GUI. Al agregar un sitio y elegir Caddy como servidor web, ServBay genera y administra automáticamente los fragmentos de Caddyfile basándose en el dominio, la raíz del sitio web, la versión de PHP y otras opciones que indiques. Estos fragmentos son incluidos en el Caddyfile principal que ServBay utiliza para ejecutar el servidor.
Esto significa que al añadir un sitio web a través de la GUI de ServBay, ya habrás completado la configuración necesaria para Caddy, sin tocar ningún archivo .caddyfile
o texto similar.
Pasos para la migración
Migrar un sitio NGINX al servidor Caddy de ServBay es un proceso muy simple:
- Inicia ServBay: Asegúrate de que la aplicación ServBay está ejecutándose.
- Ubica los archivos del sitio: Copia o mueve los archivos de tu sitio NGINX (incluyendo el código de la aplicación, imágenes, CSS, JS, etc.) a una nueva carpeta dentro del directorio raíz de ServBay, por ejemplo
/Applications/ServBay/www/your-site-name
. - Agrega el sitio web mediante la GUI de ServBay:
- Abre la aplicación ServBay.
- Navega a la sección “Sitios Web” (Websites).
- Haz clic en el botón “Agregar sitio web”.
- Rellena la información del sitio:
- Dominio (Domain): Ingresa el dominio local para acceder al sitio, por ejemplo
your-site-name.servbay.demo
. - Raíz del sitio web (Website Root): Selecciona el directorio donde colocaste los archivos en el paso 2, por ejemplo
/Applications/ServBay/www/your-site-name
. - Servidor web (Web Server): Selecciona
Caddy
. - Versión de PHP (PHP Version): Elige la versión de PHP requerida por tu sitio.
- Dominio (Domain): Ingresa el dominio local para acceder al sitio, por ejemplo
- Haz clic en “Guardar” o “Crear”.
- Verifica el sitio: ServBay añadirá el nuevo dominio al archivo de hosts local automáticamente y configurará Caddy. Accede en tu navegador al dominio local que configuraste (por ejemplo
http://your-site-name.servbay.demo
) y verifica que el sitio cargue correctamente. - Configuración de la base de datos: Si tu sitio necesita base de datos, asegúrate de que el servicio correspondiente (MySQL, PostgreSQL, etc.) esté activo en ServBay y actualiza la información de conexión en la configuración de tu sitio (la dirección de la base de datos suele ser
127.0.0.1
olocalhost
, junto con el usuario y la contraseña).
Cómo gestiona Caddy ServBay
Comprender cómo ServBay administra la configuración de Caddy es esencial para una migración exitosa. A diferencia del manejo manual del Caddyfile, ServBay te permite agregar y administrar sitios mediante la interfaz gráfica, generando los fragmentos de Caddyfile de forma automática con la información pertinente (dominio, raíz del sitio, versión de PHP, etc.). Así, la inclusión y configuración del sitio en el servidor Caddy se realiza automática y transparentemente, sin que debas editar archivos .caddyfile.
Ejemplo: migrar un sitio Laravel
Configuración típica de NGINX (solo referencia)
A continuación un ejemplo típico de configuración NGINX para un sitio Laravel. Aquí se muestra cómo se define la raíz del sitio, el archivo de entrada (index.php
) y el manejo de PHP FastCGI:
nginx
server {
listen 80;
server_name laravel.servbay.demo; # Usar dominio de ejemplo de ServBay
root /Applications/ServBay/www/laravel/public; # Apuntar al directorio public de Laravel
index index.php index.html index.htm;
location / {
# Intentar acceder directamente a archivos o carpetas, si no existen, reescribir hacia index.php
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# Configurar el manejo de PHP FastCGI
include fastcgi_params;
# Ruta por defecto del socket de PHP-CGI de ServBay
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# Bloquear acceso a archivos ocultos
deny all;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Configuración equivalente de Caddy en ServBay (generada automáticamente, sin intervención manual)
No es necesario configurar Caddyfile manualmente
En ServBay, no necesitas crear ni modificar manualmente un Caddyfile para obtener la funcionalidad mencionada. La GUI de ServBay genera automáticamente toda la configuración necesaria de Caddy en función de los ajustes del sitio. El siguiente ejemplo solo es ilustrativo de cómo ServBay traduce reglas de NGINX a Caddy, para que comprendas cómo funciona.
A continuación se muestra un fragmento representativo de configuración de Caddy que ServBay generaría automáticamente para el sitio Laravel anterior (simplificado; el real puede ser más completo según las funciones requeridas):
bash
# Esta configuración es gestionada automáticamente por ServBay
laravel.servbay.demo {
# Definir la raíz del sitio
root * /Applications/ServBay/www/laravel/public
# Configuración del manejo de PHP FastCGI, apuntando al socket de PHP-CGI de ServBay
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Activar el servidor de archivos
file_server
# Definir un matcher para archivos no estáticos
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# Reescribir peticiones a archivos no estáticos hacia index.php
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Pasos para migrar un proyecto Laravel:
- Copia los archivos del proyecto Laravel en
/Applications/ServBay/www/laravel
. - Asegúrate de que el directorio
laravel/public
sea el punto de entrada del sitio. - Añade un nuevo sitio en la GUI de ServBay: dominio
laravel.servbay.demo
, raíz/Applications/ServBay/www/laravel/public
, servidor webCaddy
. - Configura correctamente la conexión a la base de datos en el archivo
.env
de Laravel. - Accede a
http://laravel.servbay.demo
para probar que funcione.
Ejemplo: migrar un sitio de WordPress
Configuración típica de NGINX (solo referencia)
Este es un ejemplo típico de configuración de NGINX para un sitio de WordPress:
nginx
server {
listen 80;
server_name wordpress.servbay.demo; # Usar dominio de ejemplo de ServBay
root /Applications/ServBay/www/wordpress; # Apuntar al directorio de WordPress
index index.php index.html index.htm;
location / {
# Reglas de enlaces permanentes de WordPress
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# Configurar el manejo de PHP FastCGI
include fastcgi_params;
# Ruta por defecto del socket de PHP-CGI de ServBay
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# Bloquear acceso a archivos ocultos
deny all;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Configuración equivalente de Caddy en ServBay (generada automáticamente, sin intervención manual)
No es necesario configurar Caddyfile manualmente
Igualmente, para WordPress, ServBay se encarga automáticamente de la configuración con Caddy. El siguiente ejemplo ilustra cómo ServBay maneja los enlaces permanentes y otras funciones bajo el capó.
Abajo tienes un fragmento representativo del Caddyfile que ServBay generaría para el sitio de WordPress:
bash
# Esta configuración es gestionada automáticamente por ServBay
wordpress.servbay.demo {
# Definir raíz del sitio
root * /Applications/ServBay/www/wordpress
# Configurar FastCGI de PHP
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# Activar servidor de archivos
file_server
# Definir un matcher para archivos no estáticos
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# Reescribir a index.php para soportar enlaces permanentes
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Pasos para migrar un proyecto WordPress:
- Copia los archivos de WordPress en
/Applications/ServBay/www/wordpress
. - Añade un nuevo sitio en la GUI de ServBay: dominio
wordpress.servbay.demo
, raíz/Applications/ServBay/www/wordpress
, servidor webCaddy
. - Configura la información de conexión a la base de datos en el archivo
wp-config.php
de WordPress. - Accede a
http://wordpress.servbay.demo
para probar. Si tienes problemas con enlaces permanentes, normalmente ServBay ya habrá aplicado la regla de reescritura adecuada y no requieren configuración extra. Verifica también la sección "Ajustes" > "Enlaces permanentes" en el panel de WordPress.
Consideraciones importantes
- Conexión a la base de datos: Tras la migración, asegúrate de que la información de conexión apunte al servicio de base de datos gestionado por ServBay.
- Variables de entorno: Si tu aplicación depende de variables entorno específicas, configúralas apropiadamente en el entorno ServBay (por ejemplo, usando archivos
.env
de PHP o la configuración de ServBay). - Configuración NGINX compleja: Los ejemplos aquí cubren configuraciones típicas de Laravel y WordPress. Si tu archivo NGINX incluye reglas personalizadas complejas, módulos específicos o ajustes poco comunes, es posible que la configuración automática de ServBay no cubra todos los casos. En tal caso, revisa la documentación oficial de Caddy y valora usar los puntos de extensión de configuración de Caddy en ServBay (si están disponibles), o adapta la lógica según lo que ServBay genera automáticamente. Para la gran mayoría de sitios estándar, la configuración automática de ServBay es suficiente.
- HTTPS/SSL: ServBay soporta la configuración de HTTPS para sitios locales. Puedes utilizar ServBay User CA o ServBay Public CA para generar y confiar en certificados SSL locales sin configurar manualmente las directivas de TLS de Caddy.
Resumen
Migrar un sitio web de NGINX al servidor Caddy de ServBay es sencillo gracias a la gestión automática de configuración de Caddy que ofrece ServBay. Para aplicaciones comunes como Laravel y WordPress, solo tienes que colocar los archivos en el directorio correcto y usar la GUI de ServBay para crear el sitio. ServBay se encargará automáticamente de las reglas de reescritura de URL, la gestión de PHP FastCGI y otros detalles, permitiéndote ejecutar tu sitio con Caddy en minutos en entorno local.