Migración de nginx a Angie#
Si estás cambiando de nginx a Angie, ¡felicidades! Tenemos una guía para ti.
Ten en cuenta que está diseñada para un escenario de reemplazo básico
que se basa en una versión empaquetada de Angie.
Si estás trabajando con contenedores,
máquinas virtuales, rutas personalizadas o
módulos,
necesitarás ajustes adicionales. Recomendamos usar los paquetes oficiales
de nuestros repositorios;
consulta los pasos de instalación de Angie para tu distribución.
No inicies el servidor todavía;
en su lugar, compruébalo con el comando sudo angie -V: Como esto muestra,
la configuración
se encuentra en Angie generalmente requiere cambios mínimos en la configuración existente de nginx. Copia toda la configuración de nginx a Asumimos que la configuración de nginx está almacenada en Renombra el archivo de configuración principal como espera Angie: Actualiza las rutas en toda la configuración de Angie,
comenzando por el archivo de configuración principal.
Los detalles dependen de cómo se instaló nginx,
pero como mínimo necesitas actualizar lo siguiente. Cualquier ruta include que todavía apunte a El archivo PID, que es importante para la gestión de procesos de Angie: Finalmente,
access log y error log: Si se utiliza el directorio Luego recrea los enlaces simbólicos en Lista los archivos de host virtual originales, por ejemplo: Observa su ubicación real;
aquí es Si no los copiaste a Finalmente, recrea cada enlace simbólico: Encuentra e instala
equivalentes de Angie para todos los módulos dinámicos
referenciados en la configuración de nginx, por ejemplo: Esto significa que necesitas instalar el paquete Hay dos formas populares de incluir la configuración de módulos dinámicos: Si los módulos dinámicos se incluyen a través de Luego copia los archivos de configuración del módulo: Finalmente, cambia la ruta load_module en cada archivo: Si los módulos dinámicos se incluyen vía
Luego recrea los enlaces simbólicos en Lista los archivos de configuración de módulos originales, por ejemplo: Observa su ubicación real;
aquí es Cópialos a Finalmente, recrea cada enlace simbólico: Si root apunta al
directorio Copia el directorio y actualiza el valor Aunque es suficiente dejar la directiva user como está,
puedes usar cuentas de Angie para mayor flexibilidad. Actualiza la configuración de Cambia el propietario de todos los archivos de configuración,
incluidos los archivos en Si la configuración de Angie tiene directivas root,
cambia el propietario de los directorios especificados allí,
por ejemplo: Para asegurarte de que no se haya pasado nada por alto,
busca y corrige las menciones restantes de Después de actualizar la configuración de Angie,
el siguiente paso es verificar su sintaxis
para asegurarte de que Angie pueda trabajar con ella,
y luego hacer el cambio.
Verifica que Angie acepte la nueva configuración: Este comando analiza la configuración
y reporta errores que impedirían el inicio de Angie;
corrige cualquier problema y vuelve a ejecutar el comando. Para minimizar el tiempo de inactividad, inicia Angie inmediatamente después de detener nginx: Si es necesario, habilita el servicio Angie para que se inicie después del reinicio: ¡Migración completa! Eso es todo; eres increíble. Después de confirmar que Angie está funcionando de manera estable,
puedes deshabilitar o eliminar nginx para evitar conflictos. Lo mínimo que puedes hacer es deshabilitar el servicio: Es seguro asumir que estás migrando por una razón.
¿Por qué no ir más allá y configurar algunas de las características adicionales
disponibles en Angie y Angie PRO
que no están en nginx?Instalación de Angie#
$ sudo angie -V
Angie version: Angie/1.10.2
nginx version: nginx/1.27.5
built by gcc 11.4.0
configure arguments: --prefix=/etc/angie --conf-path=/etc/angie/angie.conf ...
/etc/angie/
cuando Angie se instala desde un paquete.Actualización de la configuración de Angie#
/etc/angie/
:$ sudo rsync -a --no-links /etc/nginx/ /etc/angie/
/etc/nginx/
;
ajusta los pasos si tienes una ruta diferente.$ sudo mv /etc/angie/nginx.conf /etc/angie/angie.conf
/etc/nginx/
:# include /etc/nginx/conf.d/*.conf;
# include /etc/nginx/default.d/*.conf;
# include /etc/nginx/http.d/*.conf;
# include /etc/nginx/stream.d/*.conf;
include /etc/angie/conf.d/*.conf;
include /etc/angie/default.d/*.conf;
include /etc/angie/http.d/*.conf;
include /etc/angie/stream.d/*.conf;
# include /etc/nginx/sites-enabled/*;
include /etc/angie/sites-enabled/*;
# include /etc/nginx/modules-enabled/*;
include /etc/angie/modules-enabled/*;
# include /etc/nginx/mime.types;
include /etc/angie/mime.types;
# pid /var/run/nginx.pid;
# -- or --
# pid /run/nginx.pid;
pid /run/angie.pid;
# access_log /var/log/nginx/access.log;
access_log /var/log/angie/access.log;
# error_log /var/log/nginx/error.log;
error_log /var/log/angie/error.log;
Hosts Virtuales#
sites-enabled/
para incluir hosts virtuales,
actualízalo también:# include /etc/nginx/sites-enabled/*;
include /etc/angie/sites-enabled/*;
/etc/angie/sites-enabled/
para que todo funcione.$ ls -l /etc/nginx/sites-enabled/
default -> /etc/nginx/sites-available/default
/etc/nginx/sites-available/
./etc/angie/
anteriormente,
cópialos ahora:$ sudo rsync -a /etc/nginx/sites-available/ /etc/angie/sites-available/
$ sudo ln -s /etc/angie/sites-available/default \
/etc/angie/sites-enabled/default
Módulos Dinámicos#
$ sudo nginx -T | grep load_module
load_module modules/ngx_http_geoip2_module.so;
load_module modules/ngx_stream_geoip2_module.so;
...
angie-module-geoip2
,
y así sucesivamente./usr/share/nginx/modules/
,
actualiza la ruta:# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
# include /usr/share/nginx/modules/*.conf;
include /usr/share/angie/modules/*.conf;
$ sudo rsync -a /usr/share/nginx/modules/ /usr/share/angie/modules/
# load_module "/usr/lib64/nginx/modules/ngx_http_geoip2_module.so";
load_module "/usr/lib64/angie/modules/ngx_http_geoip2_module.so";
/etc/nginx/modules-enabled/
,
actualiza la ruta:# include /etc/nginx/modules-enabled/*.conf;
include /etc/angie/modules-enabled/*.conf;
/etc/angie/modules-enabled/
para que todo funcione.$ ls -l /etc/nginx/modules-enabled/
mod-http-geoip2.conf -> /usr/share/nginx/modules-available/mod-http-geoip2.conf
/usr/share/nginx/modules-available/
./usr/share/angie/
:$ sudo rsync -a /usr/share/nginx/modules-available/ /usr/share/angie/modules-available/
$ sudo ln -s /usr/share/angie/modules-available/mod-http-geoip2.conf \
/etc/angie/modules-enabled/mod-http-geoip2.conf
Directorio Raíz (Opcional)#
/usr/share/nginx/html/
,
puedes cambiar la directiva para que apunte a Angie.root
en la configuración de Angie:$ sudo rsync -a /usr/share/nginx/html/ /usr/share/angie/html/
# root /usr/share/nginx/html;
root /usr/share/angie/html;
Usuario y Grupo (Opcional)#
user
en la configuración de Angie:# user www-data www-data;
user angie angie;
/usr/share/angie/
,
por ejemplo:$ sudo chown -R angie:angie /etc/angie/
$ sudo chown -R angie:angie /usr/share/angie/
$ sudo chown -R angie:angie /var/www/html/
Finalizando#
nginx
en la configuración de Angie:$ grep -rn --include='*.conf' 'nginx' /etc/angie/
Pruebas y Cambio#
$ sudo angie -t
Deteniendo nginx, Iniciando Angie#
$ sudo systemctl stop nginx && sudo systemctl start angie
$ sudo systemctl enable angie
Deshabilitando nginx#
$ sudo systemctl disable nginx
Configurando Características de Angie#