Migración desde nginx#
Esta guía sustituye un nginx instalado por paquete por un Angie instalado por
paquete en el mismo host, conservando la configuración, los hosts virtuales,
los módulos dinámicos y los certificados. Da por hecho que nginx se instaló
desde un paquete de la distribución con su configuración en
Instale Angie desde los paquetes oficiales de su
distribución, pero omita los pasos de inicio y habilitación: nginx todavía
ocupa los puertos 80 y 443. En Debian y Ubuntu, el paquete inicia el servicio
por sí mismo, y ese intento no consigue abrir los puertos mientras nginx está
en ejecución; ese fallo es normal y no afecta a la instalación. Confirme el binario: Los paquetes colocan la configuración en Los pasos siguientes usan rsync; instale su paquete si el comando
no está disponible. Copie toda la configuración de nginx a La opción Renombre el archivo de configuración principal como espera Angie: Actualice las rutas en toda la configuración de Angie, empezando por el
archivo principal. Como mínimo: Cualquier ruta include que todavía apunte a La ruta de pid, que la unidad de servicio del paquete espera en
Las rutas del registro de acceso y del registro
de errores: Si los hosts virtuales se incluyen desde Liste los originales y anote hacia dónde apuntan: En este caso es Luego recree cada enlace simbólico apuntando a la copia de Angie: Localice los módulos dinámicos que carga la configuración de nginx: Para los módulos de terceros más populares publicamos paquetes:
Una ruta relativa de load_module como
Las distribuciones enlazan la configuración de los módulos de una de estas dos
formas: Si los módulos dinámicos se incluyen a través de Luego copie los archivos de configuración del módulo: Si los módulos dinámicos se incluyen a través de
Liste los originales y anote hacia dónde apuntan: En este caso es Finalmente, recree cada enlace simbólico: Angie declara obsoletas algunas directivas de nginx y omite otras pocas. Si su
configuración depende de alguna de ellas, consulte
Directivas de nginx no admitidas. Una directiva omitida hace que
La más habitual en configuraciones existentes es Este paso solo se aplica si root apunta a
Luego actualice la directiva: La directiva user indica la cuenta con la que se ejecutan los procesos
de trabajo. Los paquetes de Angie crean una cuenta El proceso maestro analiza la configuración y lee los certificados y las
claves como Si la configuración tiene directivas root que apuntan a otro lugar,
cambie también el propietario de esos directorios: Busque cualquier cosa que todavía apunte a nginx: Revise cada coincidencia. Los comentarios y los archivos de parámetros de
fábrica ( Compruebe que Angie acepta la configuración: El comando carga los módulos dinámicos y analiza cada archivo incluido;
corrija cada error notificado y vuelva a ejecutarlo hasta que no quede ninguno. Para minimizar el tiempo de inactividad, inicie Angie inmediatamente después de detener nginx: Habilite el servicio para que se inicie tras un reinicio: Confirme que la respuesta ahora proviene de Angie: Una vez que Angie haya funcionado sin problemas, deshabilite nginx para que no
recupere los puertos 80 y 443 tras un reinicio: Si Certbot gestionaba los certificados de nginx, sigue funcionando con Angie
en cuanto se le indican las nuevas rutas. El complemento Cree el nombre de archivo que espera el complemento: Vuelva a ejecutar el complemento para los dominios existentes, indicando la
raíz del servidor y el binario de Angie; certbot almacena estos
parámetros junto con el certificado y los reutiliza en la renovación: Verifique que una renovación tendría éxito: Las renovaciones continúan a través del propio temporizador de Certbot. Angie obtiene y renueva los certificados por sí mismo, sin necesidad de un
cliente externo: HTTPS automático muestra la
configuración, y Migración desde certbot explica cómo sustituir una
configuración existente de Certbot. Funciones que nginx no tiene, en la versión de código abierto y en la
versión comercial. HTTPS automático y la API de estadísticas en un ejemplo pequeño. La referencia de todas las directivas y variables, agrupadas por
módulo. Guías paso a paso para tareas concretas: SSL, OIDC, clústeres, paneles
de monitorización y métricas personalizadas./etc/nginx/, y que Angie procede de los paquetes oficiales. La mayoría de las directivas de nginx funcionan en Angie
sin cambios; las excepciones se enumeran en Directivas de nginx no admitidas
y se tratan más abajo. Los contenedores y las
compilaciones con rutas personalizadas necesitan ajustes que esta guía no
cubre.Instalación de Angie#
$ sudo angie -v
Angie version: Angie/1.12.4
/etc/angie/
— angie.conf junto a los directorios http.d/ y
stream.d/ y un enlace modules/ al directorio de módulos — y
los registros en /var/log/angie/.Copia y adaptación de la configuración#
/etc/angie/:$ sudo rsync -a --no-links /etc/nginx/ /etc/angie/
--no-links omite los enlaces simbólicos e informa de
cada uno que encuentra; más abajo recreará los de sites-enabled/ y
modules-enabled/, y un enlace cuyo destino esté fuera de
/etc/nginx/ necesita que su destino se copie por separado.$ 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/*.conf;
include /etc/angie/modules-enabled/*.conf;
# include /etc/nginx/mime.types;
include /etc/angie/mime.types;
/run/angie.pid:# pid /var/run/nginx.pid;
# -- o --
# 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/, el include ya
apunta a /etc/angie/ y los archivos en sí ya están copiados, pero no
los enlaces simbólicos, que --no-links omitió. Recréelos.$ ls -l /etc/nginx/sites-enabled/
default -> /etc/nginx/sites-available/default
/etc/nginx/sites-available/, dentro de
/etc/nginx/, así que la copia de Angie ya está en su lugar. Si un
destino está fuera de ese directorio, cópielo también a /etc/angie/.$ 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-name para Angie y angie-pro-module-name para
Angie PRO. Los dos archivos .so de la salida anterior proceden del
paquete angie-module-geoip2. Consulte la lista de paquetes e instale un paquete por cada módulo que liste el comando;
un módulo que no esté en la lista debe compilarse para el Angie o el
Angie PRO que tenga instalado.modules/ngx_http_geoip2_module.so se resuelve contra el prefijo
/etc/angie, donde modules enlaza al directorio de módulos del
paquete, así que no necesita cambios. Una ruta absoluta de nginx sí:
reescríbala como /usr/lib/angie/modules/ en Debian y Ubuntu, o
/usr/lib64/angie/modules/ en la familia RHEL. Sea cual sea su
distribución, reescriba las rutas absolutas en los archivos de configuración
de módulos que copie a continuación./usr/share/nginx/modules/,
actualice 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/
/etc/nginx/modules-enabled/, el include ya apunta a
/etc/angie/. Recree los enlaces simbólicos que
--no-links omitió.$ ls -l /etc/nginx/modules-enabled/
mod-http-geoip2.conf -> /usr/share/nginx/modules-available/mod-http-geoip2.conf
/usr/share/nginx/modules-available/, fuera de
/etc/nginx/, así que copie también ese directorio:$ 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
Directivas divergentes#
angie -t falle con un error de directiva desconocida; una obsoleta se
acepta y registra una advertencia con el nombre de la directiva que debe
usarse en su lugar.keepalive_min_timeout:
Angie no la admite, así que elimínela.Directorio raíz (opcional)#
/usr/share/nginx/html/. Copie el contenido al directorio 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)#
angie. La cuenta de
nginx sigue funcionando, así que este paso es opcional; para cambiar los
procesos de trabajo a la cuenta de Angie:# user www-data www-data;
user angie angie;
root, así que la propiedad de /etc/angie/ no
cambia. Lo que necesitan los procesos de trabajo es acceso al contenido que
sirven:$ sudo chown -R angie:angie /usr/share/angie/html/
$ sudo chown -R angie:angie /var/www/html/
Comprobación final#
$ grep -rn nginx /etc/angie/
fastcgi_params, scgi_params, uwsgi_params)
mencionan nginx sin que importe; lo que importa son las rutas que todavía se
resuelven bajo /etc/nginx/ o /var/log/nginx/.Pruebas y cambio#
$ sudo angie -t
Parada de nginx e inicio de Angie#
$ sudo systemctl stop nginx && sudo systemctl start angie
$ sudo systemctl enable angie
$ curl -I localhost
HTTP/1.1 200 OK
Server: Angie/1.12.4
...
Desactivación de nginx#
$ sudo systemctl disable nginx
Certificados#
Certbot#
--nginx de certbot busca nginx.conf
en la raíz del servidor y recarga el servidor a través del binario de nginx.
Apúntelo hacia Angie antes de la siguiente renovación.$ sudo ln -s /etc/angie/angie.conf /etc/angie/nginx.conf
$ sudo certbot --nginx --nginx-server-root=/etc/angie --nginx-ctl=angie -d example.com -d www.example.com
$ sudo certbot renew --dry-run
Cliente ACME integrado#
Próximos pasos#