Compilación de Angie desde el código fuente#

Recomendamos instalar Angie a partir de paquetes oficiales precompilados. No obstante, si aún necesitas tu propia compilación:

  1. Descarga el archivo .tar.gz desde nuestro sitio web:

    $ curl -O https://download.angie.software/files/angie-1.10.2.tar.gz
    
  2. Descomprime el archivo y ve al directorio de las fuentes:

    $ tar -xpf angie-1.10.2.tar.gz
    $ cd angie-1.10.2
    
  3. Para preparar la compilación, utiliza el script ./configure para determinar las características específicas del sistema operativo donde se compila, en particular, los métodos que Angie puede usar para gestionar conexiones. Tras una ejecución exitosa, el script crea un Makefile.

    Antes de ejecutar ./configure, revisa y establece las opciones de compilación necesarias:

    $ ./configure <OPTIONS>
    
  4. Cuando el Makefile esté listo, compila e instala Angie:

    $ make
    $ make install
    

Opciones de compilación#

General#

Opción

Descripción

Predeterminado

--help

Muestra un mensaje de ayuda.

--user=name

Establece el nombre del usuario sin privilegios cuyas credenciales serán usadas por los procesos worker. Después de la instalación, el nombre siempre puede cambiarse en el archivo de configuración angie.conf usando la directiva user.

nobody

--group=name

Establece el nombre del grupo cuyas credenciales serán usadas por los procesos worker. Después de la instalación, el nombre siempre puede cambiarse en el archivo de configuración angie.conf usando la directiva user.

Ajuste de --user

--build=name

Establece un nombre opcional para la compilación.

--builddir=path

Establece el directorio de compilación.

objs

--feature-cache=path

Especifica el directorio para cachear artefactos de compilación.

Si se establece sin ruta, se usa el ajuste --builddir

Rutas#

Opción

Descripción

Predeterminado

--prefix=path

Define el directorio que almacenará los archivos del servidor. Este mismo directorio también se usará para todas las rutas relativas establecidas por ./configure (excepto las rutas a fuentes de bibliotecas) y en el archivo de configuración angie.conf.

/usr/local/angie

--sbin-path=path

Establece el nombre del ejecutable de Angie. Este nombre solo se usa durante la instalación.

<prefix>/sbin/angie

--modules-path=path

Define el directorio donde se instalarán los módulos dinámicos.

<prefix>/modules

--conf-path=path

Establece el nombre del angie.conf archivo de configuración. Si es necesario, siempre puedes iniciar Angie con un archivo de configuración diferente usando la opción de línea de comandos -c.

<prefix>/conf/angie.conf

--error-log-path=path

Establece el nombre del archivo principal de registro de errores, advertencias y diagnóstico. Después de la instalación, el nombre del archivo siempre puede cambiarse en el archivo de configuración angie.conf usando la directiva error_log.

<prefix>/logs/error.log

--pid-path=path

Establece el nombre del archivo angie.pid que almacenará el ID del proceso principal. Después de la instalación, el nombre del archivo siempre puede cambiarse en el archivo de configuración angie.conf usando la directiva pid.

<prefix>/logs/angie.pid

--lock-path=path

Establece el prefijo para los nombres de archivos de bloqueo. Tras la instalación, el valor siempre puede cambiarse en el archivo de configuración angie.conf usando la directiva lock_file.

<prefix>/logs/angie.lock

--http-acme-client-path=path

Establece el directorio para almacenar certificados y claves para los bloques server que tengan definidas directivas acme.

<prefix>/acme_client

--http-log-path=path

Establece el nombre del archivo principal de registro de solicitudes para el servidor HTTP. Tras la instalación, el nombre del archivo siempre puede cambiarse en el archivo de configuración angie.conf usando la directiva access_log.

<prefix>/logs/access.log

--http-client-body-temp-path=path

Define el directorio para almacenar archivos temporales que contienen los cuerpos de las solicitudes del cliente. Tras la instalación, el directorio siempre puede cambiarse en el archivo de configuración angie.conf usando la directiva client_body_temp_path.

<prefix>/client_body_temp

--http-proxy-temp-path=path

Define el directorio para almacenar archivos temporales con datos recibidos de servidores proxied. Tras la instalación, el directorio siempre puede cambiarse en el archivo de configuración angie.conf usando la directiva proxy_temp_path.

<prefix>/proxy_temp

--http-fastcgi-temp-path=path

Define el directorio para almacenar archivos temporales con datos recibidos de servidores FastCGI. Tras la instalación, el directorio siempre puede cambiarse en el archivo de configuración angie.conf usando la directiva fastcgi_temp_path.

<prefix>/fastcgi_temp

--http-uwsgi-temp-path=path

Define el directorio para almacenar archivos temporales con datos recibidos de servidores uWSGI. Tras la instalación, el directorio siempre puede cambiarse en el archivo de configuración angie.conf usando la directiva uwsgi_temp_path.

<prefix>/uwsgi_temp

--http-scgi-temp-path=path

Define el directorio para almacenar archivos temporales con datos recibidos de servidores SCGI. Tras la instalación, el directorio siempre puede cambiarse en el archivo de configuración angie.conf usando la directiva scgi_temp_path.

<prefix>/scgi_temp

Funciones y dependencias#

--with-select_module, --without-select_module

Activa o desactiva la compilación de un módulo que permite al servidor trabajar con el método select(). Este módulo se compila automáticamente si la plataforma no parece admitir métodos más adecuados como kqueue, epoll o /dev/poll.

--with-poll_module, --without-poll_module

Activa o desactiva la compilación de un módulo que permite al servidor trabajar con el método poll(). Este módulo se compila automáticamente si la plataforma no parece admitir métodos más adecuados como kqueue, epoll o /dev/poll.

--with-threads

Activa el uso de pools de hilos.

--with-file-aio

Activa el uso de E/S de archivos asíncrona (AIO) en FreeBSD y Linux.

--with-debug

Activa el registro de depuración.

--without-http-cache

Desactiva la caché HTTP.

--with-pcre, --with-pcre=path

Activa el uso de la biblioteca PCRE.

El parámetro opcional establece la ruta a las fuentes de la biblioteca PCRE. La distribución de la biblioteca debe descargarse del sitio PCRE y extraerse. El resto lo realizan los comandos ./configure y make de Angie.

La biblioteca es necesaria para el soporte de expresiones regulares en la directiva location y para el módulo Rewrite.

--with-pcre-opt=parameters

Establece parámetros adicionales de compilación para PCRE.

--with-pcre-jit

Compila la biblioteca PCRE con soporte de compilación JIT (la directiva pcre_jit).

--without-pcre

Desactiva el uso de la biblioteca PCRE.

--without-pcre2

Desactiva el uso de la biblioteca PCRE2 en lugar de la biblioteca PCRE original.

--with-libatomic, --with-libatomic=path

Activa la compilación con la biblioteca libatomic_ops. El parámetro opcional establece la ruta a las fuentes de la biblioteca.

--with-openssl=path

Activa la compilación estática y establece la ruta a las fuentes de la biblioteca OpenSSL.

--with-openssl-opt=parameters

Establece parámetros adicionales de compilación para OpenSSL.

--with-ntls

Activa el soporte NTLS en el módulo HTTP (lado servidor, lado cliente) y en el módulo de stream (lado servidor, lado cliente) al compilar con una biblioteca SSL que admita NTLS.

--with-zlib=path

Establece la ruta a las fuentes de la biblioteca zlib. La distribución de la biblioteca (versión 1.1.3 — 1.2.11) debe descargarse del sitio de zlib y extraerse. El resto lo realizan los comandos ./configure y make de Angie.

La biblioteca es necesaria para el módulo GZip.

--with-zlib-opt=parameters

Establece parámetros adicionales de compilación para zlib.

--with-zlib-asm=cpu

Activa el uso de optimizaciones en ensamblador para compilar zlib, optimizadas para uno de los siguientes procesadores: pentium, pentiumpro.

Activación y desactivación de módulos#

Puedes desactivar módulos que están activados por defecto o activar módulos que están disponibles por defecto pero desactivados.

HTTP#

Activación de módulos adicionales:

--with-http_acme_module

Activa la compilación del módulo ACME, que habilita el protocolo ACME.

--with-http_addition_module

Activa la compilación del módulo Addition que permite añadir texto antes y después de una respuesta.

--with-http_auth_request_module

Activa la compilación del módulo Auth Request que proporciona capacidades de autorización del cliente basadas en el resultado de una subsolicitud.

--with-http_dav_module

Activa la compilación del módulo DAV destinado a automatizar tareas de gestión de archivos en el servidor mediante el protocolo WebDAV.

--with-http_degradation_module

Activa la compilación del módulo Degradation que permite devolver los códigos de estado HTTP 204 o 444 para ciertos bloques location.

Este módulo solo puede usarse en los casos en que sbrk(0) muestra la cantidad real de memoria asignada al proceso. En otras palabras, el módulo funciona en FreeBSD hasta la versión 7.0 por defecto. A partir de la versión 7.0, solo funciona si se establece MALLOC_OPTIONS=Dm. En Linux no funciona.

--with-http_flv_module

Activa la compilación del módulo FLV que proporciona compatibilidad de pseudo-streaming en el servidor para archivos de video Flash (FLV).

--with-http_geoip_module, --with-http_geoip_module=dynamic

Activa la compilación del módulo GeoIP que crea variables cuyos valores se determinan en función de la dirección IP del cliente y de las bases de datos MaxMind.

--with-http_gunzip_module

Activa la compilación del módulo GunZIP que permite descomprimir respuestas con Content-Encoding: gzip para clientes que no admiten el método de compresión gzip.

--with-http_gzip_static_module

Activa la compilación del módulo Gzip Static que permite servir un archivo precomprimido con el mismo nombre y la extensión .gz en lugar de un archivo normal.

--with-http_image_filter_module, --with-http_image_filter_module=dynamic

Activa la compilación del módulo Image Filter que permite transformar imágenes en formatos JPEG, GIF, PNG y WebP.

--with-http_mp4_module

Activa la compilación del módulo MP4 que proporciona compatibilidad de pseudo-streaming en el servidor para archivos en formato MP4.

--with-http_perl_module, --with-http_perl_module=dynamic

Activa la compilación del módulo Perl.

--with-perl_modules_path=path

Establece el directorio donde se ubicarán los archivos de módulos de Perl.

--with-perl=path

Establece el nombre del archivo ejecutable de Perl.

--with-http_random_index_module

Activa la compilación del módulo Random Index que atiende solicitudes que terminan con una barra (/) y devuelve un archivo aleatorio como archivo índice del directorio.

--with-http_realip_module

Activa la compilación del módulo RealIP que permite cambiar la dirección del cliente por la pasada en el campo de cabecera especificado.

--with-http_secure_link_module

Activa la compilación del módulo Secure Link.

--with-http_slice_module

Activa la compilación del módulo Slice que permite dividir una solicitud en subsolicitudes, cada una devolviendo un rango específico de la respuesta. El módulo proporciona almacenamiento en caché eficiente de respuestas grandes.

--with-http_ssl_module

Activa el soporte SSL para el servidor HTTP.

La biblioteca OpenSSL es necesaria para este módulo.

--with-http_stub_status_module

Activa la compilación del módulo Stub Status que proporciona acceso a información básica del estado del servidor.

--with-http_sub_module

Activa la compilación del módulo Sub que permite modificar una cadena especificada en la respuesta por otra.

--with-http_v2_module

Activa el módulo HTTP/2.

--with-http_v3_module

Activa el módulo HTTP/3.

Nota

Para compilar, se recomienda encarecidamente usar una biblioteca SSL que admita el protocolo QUIC:

Compilación con BoringSSL:

$ ./configure
   --with-debug
   --with-http_v3_module
   --with-cc-opt="-I../boringssl/include"
   --with-ld-opt="-L../boringssl/build/ssl
                  -L../boringssl/build/crypto"

Sin esto, la biblioteca OpenSSL se usará en modo de compatibilidad, donde no se admite el envío de early data y faltan otras funciones, como la reutilización de sesión. Dicha compilación podrá interactuar solo con clientes y servidores que usen OpenSSL en el mismo modo.

--with-http_xslt_module, --with-http_xslt_module=dynamic

Activa la compilación del módulo XSLT que permite transformar respuestas XML usando hojas de estilo XSLT.

Las bibliotecas libxml2 y libxslt son necesarias para este módulo.

--with-google_perftools_module

Activa la compilación del módulo Google PerfTools que proporciona soporte para perfilar los procesos worker de Angie usando Google Performance Tools. El módulo está destinado a desarrolladores de Angie.

Desactivación de módulos estándar:

--without-http

Desactiva el servidor HTTP.

--without-http_access_module

Desactiva el módulo Access que permite limitar el acceso a ciertas direcciones de cliente.

--without-http_api_module

Desactiva el módulo API que proporciona una interfaz HTTP REST para acceder a información basada en JSON sobre la instancia del servidor web.

--without-http_auth_basic_module

Desactiva el módulo Auth Basic que permite limitar el acceso a recursos validando el nombre de usuario y la contraseña mediante el protocolo HTTP Basic Authentication.

--without-http_autoindex_module

Desactiva el módulo AutoIndex que procesa solicitudes que terminan con el carácter barra (/) y genera un listado del directorio en caso de que el módulo Index no pueda encontrar un archivo índice.

--without-http_browser_module

Desactiva el módulo Browser que crea variables cuyos valores dependen del valor del campo de cabecera User-Agent de la solicitud.

--without-http_charset_module

Desactiva el módulo Charset que añade el charset especificado al campo de cabecera de respuesta Content-Type y, adicionalmente, puede convertir datos de un charset a otro.

--without-http_empty_gif_module

Desactiva el módulo que emite un GIF transparente de un píxel.

--without-http_fastcgi_module

Desactiva el módulo FastCGI que envía solicitudes a un servidor FastCGI.

--without-http_geo_module

Desactiva el módulo Geo que crea variables con valores que dependen de la dirección IP del cliente.

--without-http_gzip_module

Desactiva el módulo que comprime las respuestas del servidor HTTP.

La biblioteca zlib es necesaria para compilar y ejecutar este módulo.

--without-http_grpc_module

Desactiva el módulo gRPC que envía solicitudes a un servidor gRPC.

--without-http_limit_conn_module

Desactiva el módulo Limit Conn que limita el número de conexiones por clave, por ejemplo, el número de conexiones desde una única dirección IP.

--without-http_limit_req_module

Desactiva el módulo Limit Req que limita la velocidad de procesamiento de solicitudes por clave, por ejemplo, la velocidad de procesamiento de solicitudes provenientes de una única dirección IP.

--without-http_map_module

Desactiva el módulo Map que crea variables con valores que dependen de los valores de otras variables.

--without-http_memcached_module

Desactiva el módulo Memcached que obtiene respuestas de un servidor memcached.

--without-http_mirror_module

Desactiva el módulo Mirror que implementa el mirroring de una solicitud original creando subsolicitudes espejo en segundo plano.

--without-http_prometheus_module

Desactiva el módulo Prometheus del servidor HTTP.

--without-http_proxy_module

Desactiva el módulo Proxy del servidor HTTP.

--without-http_referer_module

Desactiva el módulo Referer que puede bloquear el acceso a un sitio para solicitudes con valores no válidos en el campo de cabecera Referer.

--without-http_rewrite_module

Desactiva el módulo Rewrite que permite al servidor HTTP redirigir solicitudes y cambiar sus URIs.

La biblioteca PCRE es necesaria para compilar y ejecutar este módulo.

--without-http_scgi_module

Desactiva el módulo SCGI que envía solicitudes a un servidor SCGI.

--without-http_split_clients_module

Desactiva el módulo Split Clients que crea variables para pruebas A/B.

--without-http_ssi_module

Desactiva el módulo SSI que procesa comandos SSI (Server Side Includes) en respuestas que pasan a través de él.

--without-http_upstream_hash_module

Desactiva el módulo que implementa el método de balanceo de carga hash.

--without-http_upstream_ip_hash_module

Desactiva el módulo que implementa el método de balanceo de carga ip_hash.

--without-http_upstream_keepalive_module

Desactiva el módulo que proporciona caché de conexiones hacia servidores upstream.

--without-http_upstream_least_conn_module

Desactiva el módulo que implementa el método de balanceo de carga least_conn.

--without-http_upstream_random_module

Desactiva el módulo que implementa el método de balanceo de carga random.

--without-http_upstream_sticky_module

Desactiva el módulo que implementa la persistencia de sesión, garantizando que todas las solicitudes en la sesión del cliente se envíen al mismo servidor backend en el upstream.

--without-http_upstream_zone_module

Desactiva el módulo que permite almacenar el estado en tiempo de ejecución de un upstream en una zona de memoria compartida.

--without-http_userid_module

Desactiva el módulo UserID que establece cookies adecuadas para la identificación del cliente.

--without-http_uwsgi_module

Desactiva el módulo uWSGI que envía solicitudes a un servidor uWSGI.

Transmisión (Stream)#

Activación de módulos adicionales:

* - --with-stream, --with-stream=dynamic - Activa el módulo principal Stream para proxying genérico TCP/UDP y balanceo de carga.#

--with-stream_acme_module

Activa la compilación del módulo ACME, que habilita el protocolo ACME.

--with-stream_geoip_module, --with-stream_geoip_module=dynamic

Activa el módulo GeoIP que crea variables en función de la dirección IP del cliente y de las bases de datos precompiladas MaxMind.

--with-stream_mqtt_preread_module

Activa el módulo MQTT Preread que permite extraer IDs de cliente y nombres de usuario de paquetes CONNECT en las versiones MQTT 3.1.1 y 5.0.

--with-stream_rdp_preread_module

Activa el módulo RDP Preread que permite extraer cookies de sesiones RDP.

--with-stream_realip_module

Activa el módulo RealIP que cambia la dirección del cliente por la dirección enviada en la cabecera del protocolo PROXY.

--with-stream_ssl_module

Activa el soporte SSL para el servidor de Stream.

La biblioteca OpenSSL es necesaria para compilar y ejecutar este módulo.

--with-stream_ssl_preread_module

Activa el módulo SSL Preread que permite extraer información de los mensajes ClientHello sin terminar SSL/TLS.

Desactivación de módulos estándar:

* - --without-stream_access_module - Desactiva el módulo Access que permite limitar el acceso a ciertas direcciones de cliente.#

--without-stream_geo_module

Desactiva el módulo Geo que crea variables con valores que dependen de la dirección IP del cliente.

--without-stream_limit_conn_module

Desactiva el módulo Limit Conn que limita el número de conexiones por clave, por ejemplo, el número de conexiones desde una única dirección IP.

--without-stream_map_module

Desactiva el módulo Map que crea variables con valores que dependen de los valores de otras variables.

--without-stream_return_module

Desactiva el módulo Return que envía el valor especificado al cliente y luego cierra la conexión.

--without-stream_set_module

Desactiva el módulo Set que establece un valor para una variable.

--without-stream_split_clients_module

Desactiva el módulo Split Clients que crea variables para pruebas A/B.

--without-stream_upstream_hash_module

Desactiva el módulo que implementa el método de balanceo de carga hash.

--without-stream_upstream_least_conn_module

Desactiva el módulo que implementa el método de balanceo de carga least_conn.

--without-stream_upstream_random_module

Desactiva el módulo que implementa el método de balanceo de carga random.

--without-stream_upstream_zone_module

Desactiva el módulo que permite almacenar el estado en tiempo de ejecución de un upstream en una zona de memoria compartida.

Correo (Mail)#

Activación de módulos adicionales:

* - --with-mail, --with-mail=dynamic - Activa el módulo principal Mail que admite POP3, IMAP4 y SMTP.#

--with-mail_ssl_module

Activa el soporte SSL para el servidor de Mail.

La biblioteca OpenSSL es necesaria para compilar y ejecutar este módulo.

Desactivación de módulos estándar:

* - --without-mail_imap_module - Desactiva el protocolo IMAP en el servidor de Mail.#

--without-mail_pop3_module

Desactiva el protocolo POP3 en el servidor de Mail.

--without-mail_smtp_module

Desactiva el protocolo SMTP en el servidor de Mail.

Otras opciones#

* - --with-cpp_test_module - Activa el módulo de pruebas CPP. Se utiliza principalmente para desarrollo y pruebas y no está destinado a uso en producción.#

--add-module=path

Activa la compilación de un módulo externo en la ruta especificada.

--add-dynamic-module=path

Activa la compilación de un módulo dinámico externo en la ruta especificada.

--with-compat

Activa el modo de compatibilidad de módulos dinámicos. Cuando está habilitado, Angie puede cargar y usar módulos dinámicos que se hayan compilado para la misma versión de Angie, incluso si dichos módulos se compilaron con opciones diferentes.

--with-cc=path

Establece el compilador que se usará durante la compilación.

--with-cpp=path

Establece el preprocesador que se usará durante la compilación.

--with-cc-opt=parameters

Establece parámetros adicionales que se añadirán a la variable CFLAGS. Al usar la biblioteca PCRE del sistema en FreeBSD, se debe especificar --with-cc-opt="-I /usr/local/include". Si es necesario aumentar el número de archivos admitidos por select(), también puede especificarse aquí, por ejemplo --with-cc-opt="-D FD_SETSIZE=2048".

--with-ld-opt=parameters

Establece parámetros adicionales que se usarán durante el enlace. Al usar la biblioteca PCRE del sistema en FreeBSD, se debe especificar --with-ld-opt="-L /usr/local/lib".

--with-cpu-opt=cpu

Activa compilaciones optimizadas para uno de los siguientes procesadores: pentium, pentiumpro, pentium3, pentium4, athlon, opteron, sparc32, sparc64, ppc64.

Ejemplos#

Compilación simple con HTTPS. Esta configuración básica activa el soporte HTTPS usando SSL/TLS, con las dependencias necesarias (PCRE para expresiones regulares, zlib para compresión y OpenSSL para SSL/TLS):

$ ./configure \
    --sbin-path=/usr/sbin/angie \
    --conf-path=/etc/angie/angie.conf \
    --pid-path=/run/angie.pid \
    --with-http_ssl_module \
    --with-pcre=../pcre2-10.40 \
    --with-zlib=../zlib-1.3 \
    --with-openssl=../openssl-3.0.8

Compilación optimizada para rendimiento. Esta configuración está optimizada para el rendimiento, incluye soporte HTTP/2, compresión estática gzip, JIT para PCRE y E/S asíncrona; también se activan pools de hilos para manejar cargas altas de forma eficiente:

$ ./configure \
    --sbin-path=/usr/sbin/angie \
    --conf-path=/etc/angie/angie.conf \
    --pid-path=/run/angie.pid \
    --with-http_ssl_module \
    --with-http_v2_module \
    --with-http_gzip_static_module \
    --with-pcre=../pcre2-10.40 \
    --with-pcre-jit \
    --with-zlib=../zlib-1.3 \
    --with-threads \
    --with-file-aio

Balanceador de carga con proxy TCP/UDP. Esta configuración prepara un balanceador de carga para servicios HTTP y no HTTP:

$ ./configure \
    --sbin-path=/usr/sbin/angie \
    --conf-path=/etc/angie/angie.conf \
    --pid-path=/run/angie.pid \
    --with-stream \
    --with-stream_ssl_module \
    --with-pcre=../pcre2-10.40 \
    --with-zlib=../zlib-1.3

Compilación especializada. Esta configuración incluye HTTPS, HTTP/2, compresión, seguridad y rendimiento mejorados, junto con módulos adicionales para compresión Brotli y gestión de caché, optimizada tanto para proxy HTTP como TCP/UDP:

$ ./configure \
    --prefix=/usr/local/angie \                        # Directorio de instalación de Angie
    --sbin-path=/usr/sbin/angie \                      # Ruta al binario de Angie
    --conf-path=/etc/angie/angie.conf \                # Ruta al archivo de configuración principal
    --pid-path=/run/angie.pid \                        # Ruta al archivo PID
    --lock-path=/var/lock/angie.lock \                 # Ruta al archivo de bloqueo
    --error-log-path=/var/log/angie/error.log \        # Ruta al archivo de registro de errores
    --http-log-path=/var/log/angie/access.log \        # Ruta al archivo de registro de acceso
    --with-http_ssl_module \                           # Activa el módulo SSL para HTTPS
    --with-http_v2_module \                            # Activa soporte HTTP/2 para mejorar el rendimiento
    --with-http_realip_module \                        # Permite a Angie manejar correctamente cabeceras X-Real-IP y X-Forwarded-For
    --with-http_gzip_static_module \                   # Sirve archivos .gz precomprimidos para reducir carga de CPU
    --with-http_stub_status_module \                   # Proporciona una página de estado
    --with-threads \                                   # Activa pools de hilos para mejorar el rendimiento bajo alta carga
    --with-file-aio \                                  # Activa E/S asíncrona
    --with-stream \                                    # Activa funcionalidad de proxy TCP/UDP
    --with-stream_ssl_module \                         # Añade soporte SSL/TLS para proxy TCP/UDP
    --with-pcre=../pcre2-10.40 \                       # Especifica la ruta a la biblioteca PCRE para soporte de regex
    --with-pcre-jit \                                  # Activa compilación JIT para PCRE
    --with-zlib=../zlib-1.3 \                          # Especifica la ruta a la biblioteca zlib para compresión
    --with-openssl=../openssl-3.0.8 \                  # Especifica la ruta a la biblioteca OpenSSL para SSL/TLS
    --with-openssl-opt="enable-ec_nistp_64_gcc_128" \  # Optimiza OpenSSL para curvas NIST de 64 bits
    --add-module=../ngx_brotli \                       # Añade el módulo de terceros ngx_brotli para soporte de compresión Brotli
    --add-dynamic-module=../ngx_cache_purge            # Añade el módulo de terceros ngx_cache_purge para gestión de caché