<!-- review: finished -->

<a id="sourcebuild"></a>

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

Recomendamos instalar Angie a partir de
[paquetes](https://es.angie.software//angie/docs/installation/oss_packages.md#oss-packages) oficiales precompilados.
No obstante, si aún necesitas tu propia compilación:

1. Descarga el archivo `.tar.gz` desde
   [nuestro sitio web](https://download.angie.software/files/):
   ```console
   $ curl -O https://download.angie.software/files/angie-|version|.tar.gz
   ```
2. Descomprime el archivo y navega al directorio de las fuentes:
   ```console
   $ tar -xpf angie-|version|.tar.gz
   $ cd angie-|version|
   ```
3. Para preparar la compilación, utiliza el script **./configure**,
   que determina 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](#configure) necesarias:
   ```console
   $ ./configure <OPTIONS>
   ```
4. Cuando el `Makefile` esté listo, compila e instala Angie:
   ```console
   $ make
   $ make install
   ```

<a id="configure"></a>

## Opciones de compilación

<a id="general"></a>

### 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<br/>los procesos worker. Después de la instalación, el nombre siempre puede cambiarse en<br/>el archivo de configuración `angie.conf` usando la directiva [user](https://es.angie.software//angie/docs/configuration/modules/core.md#user). | `nobody`                                                |
| `--group=`name         | Establece el nombre del grupo cuyas credenciales serán usadas por<br/>los procesos worker. Después de la instalación, el nombre siempre puede cambiarse en<br/>el archivo de configuración `angie.conf` usando la directiva [user](https://es.angie.software//angie/docs/configuration/modules/core.md#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` |

<a id="paths"></a>

### Rutas

| Opción                              | Descripción                                                                                                                                                                                                                                                                                                                                                                        | Predeterminado              |
|-------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| `--prefix=`path                     | Define el directorio que almacenará los archivos del servidor. Este mismo directorio<br/>también se usará para todas las rutas relativas establecidas por **./configure**<br/>(excepto las rutas a fuentes de bibliotecas) y en el archivo de configuración<br/>`angie.conf`.                                                                                                      | `/usr/local/angie`          |
| `--sbin-path=`path                  | Establece el nombre del ejecutable de Angie. Este nombre solo se usa durante<br/>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 [archivo de configuración](https://es.angie.software//angie/docs/configuration/configfile.md#configfile) `angie.conf`. Si es necesario, siempre puedes<br/>iniciar Angie con un archivo de configuración diferente usando la<br/>[opción de línea de comandos](https://es.angie.software//angie/docs/configuration/runtime.md#runtime-cli-options) `-c`.   | `<prefix>/conf/angie.conf`  |
| `--error-log-path=`path             | Establece el nombre del archivo principal de registro de errores, advertencias y diagnóstico.<br/>Después de la instalación, el nombre del archivo siempre puede cambiarse en el<br/>archivo de configuración `angie.conf` usando la directiva [error_log](https://es.angie.software//angie/docs/configuration/modules/core.md#error-log).                                         | `<prefix>/logs/error.log`   |
| `--pid-path=`path                   | Establece el nombre del archivo `angie.pid` que almacenará el ID<br/>del proceso principal. Después de la instalación, el nombre del archivo siempre puede<br/>cambiarse en el archivo de configuración `angie.conf` usando la directiva [pid](https://es.angie.software//angie/docs/configuration/modules/core.md#pid).                                                           | `<prefix>/logs/angie.pid`   |
| `--lock-path=`path                  | Establece el prefijo para los nombres de archivos de bloqueo. Tras la instalación,<br/>el valor siempre puede cambiarse en el archivo de configuración `angie.conf`<br/>usando la directiva [lock_file](https://es.angie.software//angie/docs/configuration/modules/core.md#lock-file).                                                                                            | `<prefix>/logs/angie.lock`  |
| `--http-acme-client-path=`path      | Establece el directorio para almacenar certificados y claves para los bloques<br/>`server` que tengan definidas directivas [acme](https://es.angie.software//angie/docs/configuration/modules/http/http_acme.md#id1).                                                                                                                                                              | `<prefix>/acme_client`      |
| `--http-log-path=`path              | Establece el nombre del archivo principal de registro de solicitudes para el servidor HTTP.<br/>Tras la instalación, el nombre del archivo siempre puede cambiarse en<br/>el archivo de configuración `angie.conf` usando la directiva [access_log](https://es.angie.software//angie/docs/configuration/modules/http/http_log.md#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<br/>solicitudes del cliente. Tras la instalación, el directorio siempre puede cambiarse en el<br/>archivo de configuración `angie.conf` usando la directiva<br/>[client_body_temp_path](https://es.angie.software//angie/docs/configuration/modules/http/index.md#client-body-temp-path). | `<prefix>/client_body_temp` |
| `--http-proxy-temp-path=`path       | Define el directorio para almacenar archivos temporales con datos recibidos de<br/>servidores proxy. Tras la instalación, el directorio siempre puede cambiarse en el<br/>archivo de configuración `angie.conf` usando la directiva<br/>[proxy_temp_path](https://es.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-temp-path).                         | `<prefix>/proxy_temp`       |
| `--http-fastcgi-temp-path=`path     | Define el directorio para almacenar archivos temporales con datos recibidos de<br/>servidores FastCGI. Tras la instalación, el directorio siempre puede cambiarse en<br/>el archivo de configuración `angie.conf` usando la directiva<br/>[fastcgi_temp_path](https://es.angie.software//angie/docs/configuration/modules/http/http_fastcgi.md#fastcgi-temp-path).                 | `<prefix>/fastcgi_temp`     |
| `--http-uwsgi-temp-path=`path       | Define el directorio para almacenar archivos temporales con datos recibidos de<br/>servidores uWSGI. Tras la instalación, el directorio siempre puede cambiarse en<br/>el archivo de configuración `angie.conf` usando la directiva<br/>[uwsgi_temp_path](https://es.angie.software//angie/docs/configuration/modules/http/http_uwsgi.md#uwsgi-temp-path).                         | `<prefix>/uwsgi_temp`       |
| `--http-scgi-temp-path=`path        | Define el directorio para almacenar archivos temporales con datos recibidos de<br/>servidores SCGI. Tras la instalación, el directorio siempre puede cambiarse en<br/>el archivo de configuración `angie.conf` usando la directiva<br/>[scgi_temp_path](https://es.angie.software//angie/docs/configuration/modules/http/http_scgi.md#scgi-temp-path).                             | `<prefix>/scgi_temp`        |

<a id="install-source-features"></a>

### 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<br/>el método `select()`. Este módulo se compila automáticamente si la<br/>plataforma no parece admitir métodos más adecuados como<br/>`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<br/>el método `poll()`. Este módulo se compila automáticamente si la<br/>plataforma no parece admitir métodos más adecuados como<br/>`kqueue`, `epoll` o `/dev/poll`.                                                                                                                                                                                                                                                                                                                          |
| `--with-threads`                                    | Activa el uso de [pools de hilos](https://es.angie.software//angie/docs/configuration/modules/core.md#thread-pool)<br/>(modo `aio threads`).                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `--with-file-aio`                                   | Activa el uso de [E/S de archivos asíncrona](https://es.angie.software//angie/docs/configuration/modules/http/index.md#aio) (AIO) en FreeBSD<br/>y Linux (modo `aio on`).                                                                                                                                                                                                                                                                                                                                                                                                          |
| `--with-debug`                                      | Activa el [registro de depuración](https://es.angie.software//angie/docs/troubleshooting.md#debug-logging).                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| `--without-http-cache`                              | Desactiva la caché HTTP.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `--with-pcre`, `--with-pcre=`path                   | Activa el uso de la biblioteca PCRE.<br/><br/>El parámetro opcional establece la ruta a las fuentes de la biblioteca PCRE.<br/>La distribución de la biblioteca debe descargarse del sitio [PCRE](http://www.pcre.org/) y extraerse. El resto lo realizan los comandos<br/>**./configure** y **make** de Angie.<br/><br/>La biblioteca es **necesaria** para el soporte de expresiones regulares en la<br/>directiva `location` y para el módulo [Rewrite](https://es.angie.software//angie/docs/configuration/modules/http/http_rewrite.md#http-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<br/>[pcre_jit](https://es.angie.software//angie/docs/configuration/modules/core.md#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**.<br/>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. AWS-LC puede usarse como biblioteca compatible con 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](https://es.angie.software//angie/docs/configuration/modules/http/http_ssl.md#ssl-ntls), [lado cliente](https://es.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-ssl-ntls)) y en el módulo<br/>stream ([lado servidor](https://es.angie.software//angie/docs/configuration/modules/stream/stream_ssl.md#s-ssl-ntls), [lado cliente](https://es.angie.software//angie/docs/configuration/modules/stream/stream_proxy.md#s-proxy-ssl-ntls)) 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<br/>de la biblioteca (versión 1.1.3 — 1.2.11) debe descargarse del<br/>[sitio de zlib](http://zlib.net/) y extraerse. El resto lo realizan<br/>los comandos **./configure** y **make** de Angie.<br/><br/>La biblioteca es **necesaria** para el módulo [GZip](https://es.angie.software//angie/docs/configuration/modules/http/http_gzip.md#http-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**,<br/>optimizadas para uno de los siguientes procesadores: `pentium`,<br/>`pentiumpro`.                                                                                                                                                                                                                                                                                                                                                                                                                       |

<a id="enabling-and-disabling-modules"></a>

### 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 pero desactivados por defecto.

<a id="http-1"></a>

#### HTTP

Activación de módulos adicionales:

| `--with-http_acme_module`                                                        | Activa la compilación del módulo [ACME](https://es.angie.software//angie/docs/configuration/modules/http/http_acme.md#http-acme),<br/>que habilita el protocolo ACME.                                                                                                                                                                                                                                                                                                             |
|----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--with-http_addition_module`                                                    | Activa la compilación del módulo [Addition](https://es.angie.software//angie/docs/configuration/modules/http/http_addition.md#http-addition) que permite añadir texto<br/>antes y después de una respuesta.                                                                                                                                                                                                                                                                       |
| `--with-http_auth_request_module`                                                | Activa la compilación del módulo [Auth Request](https://es.angie.software//angie/docs/configuration/modules/http/http_auth_request.md#http-auth-request) que proporciona<br/>capacidad de autorización del cliente basada en el resultado de una subsolicitud.                                                                                                                                                                                                                    |
| `--with-http_dav_module`                                                         | Activa la compilación del módulo [DAV](https://es.angie.software//angie/docs/configuration/modules/http/http_dav.md#http-dav)<br/>destinado a automatizar tareas de gestión de archivos en el servidor mediante<br/>el protocolo WebDAV.                                                                                                                                                                                                                                          |
| `--with-http_degradation_module`                                                 | Activa la compilación del módulo Degradation que permite devolver los códigos<br/>de estado HTTP 204 o 444 para ciertos bloques `location`.<br/><br/>Este módulo solo puede usarse en los casos en que `sbrk(0)`<br/>muestra la cantidad real de memoria asignada al proceso. En otras<br/>palabras, el módulo funciona en FreeBSD hasta la versión 7.0 por defecto.<br/>A partir de la versión 7.0, solo funciona si se establece `MALLOC_OPTIONS=Dm`.<br/>En Linux no funciona. |
| `--with-http_flv_module`                                                         | Activa la compilación del módulo [FLV](https://es.angie.software//angie/docs/configuration/modules/http/http_flv.md#http-flv)<br/>que proporciona soporte de pseudo-streaming en el servidor para archivos<br/>Flash Video (FLV).                                                                                                                                                                                                                                                 |
| `--with-http_geoip_module`, `--with-http_geoip_module=dynamic`                   | Activa la compilación del módulo [GeoIP](https://es.angie.software//angie/docs/configuration/modules/http/http_geoip.md#http-geoip) que crea variables cuyos<br/>valores se determinan en función de la dirección IP del cliente y de las<br/>bases de datos preparadas de [MaxMind](http://www.maxmind.com/).                                                                                                                                                                    |
| `--with-http_gunzip_module`                                                      | Activa la compilación del módulo [GunZIP](https://es.angie.software//angie/docs/configuration/modules/http/http_gunzip.md#http-gunzip) que permite descomprimir<br/>respuestas con `Content-Encoding: gzip` para clientes que no<br/>admiten el método de compresión `gzip`.                                                                                                                                                                                                      |
| `--with-http_gzip_static_module`                                                 | Activa la compilación del módulo [Gzip Static](https://es.angie.software//angie/docs/configuration/modules/http/http_gzip_static.md#http-gzip-static) que permite servir<br/>un archivo precomprimido con el mismo nombre y la extensión `.gz`<br/>en lugar de un archivo normal.                                                                                                                                                                                                 |
| `--with-http_image_filter_module`,<br/>`--with-http_image_filter_module=dynamic` | Activa la compilación del módulo [Image Filter](https://es.angie.software//angie/docs/configuration/modules/http/http_image_filter.md#http-image-filter) que permite<br/>transformar imágenes en formatos JPEG, GIF, PNG y WebP.                                                                                                                                                                                                                                                  |
| `--with-http_mp4_module`                                                         | Activa la compilación del módulo [MP4](https://es.angie.software//angie/docs/configuration/modules/http/http_mp4.md#http-mp4)<br/>que proporciona soporte 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](https://es.angie.software//angie/docs/configuration/modules/http/http_perl.md#http-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](https://es.angie.software//angie/docs/configuration/modules/http/http_random_index.md#http-random-index) que atiende solicitudes<br/>que terminan con una barra (`/`) y devuelve un archivo aleatorio como<br/>archivo índice del directorio.                                                                                                                                                                                     |
| `--with-http_realip_module`                                                      | Activa la compilación del módulo [RealIP](https://es.angie.software//angie/docs/configuration/modules/http/http_realip.md#http-realip) que permite cambiar la<br/>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](https://es.angie.software//angie/docs/configuration/modules/http/http_secure_link.md#http-secure-link).                                                                                                                                                                                                                                                                                                                            |
| `--with-http_slice_module`                                                       | Activa la compilación del módulo [Slice](https://es.angie.software//angie/docs/configuration/modules/http/http_slice.md#http-slice) que permite dividir una solicitud en<br/>subsolicitudes, cada una devolviendo un rango específico de la respuesta.<br/>El módulo proporciona almacenamiento en caché eficiente de respuestas grandes.                                                                                                                                         |
| `--with-http_ssl_module`                                                         | Activa el soporte [SSL](https://es.angie.software//angie/docs/configuration/modules/http/http_ssl.md#http-ssl) para el<br/>servidor HTTP.<br/><br/>La biblioteca OpenSSL es **necesaria** para este módulo.                                                                                                                                                                                                                                                                       |
| `--with-http_stub_status_module`                                                 | Activa la compilación del módulo [Stub Status](https://es.angie.software//angie/docs/configuration/modules/http/http_stub_status.md#http-stub-status) que proporciona acceso a<br/>información básica del estado del servidor.                                                                                                                                                                                                                                                    |
| `--with-http_sub_module`                                                         | Activa la compilación del módulo [Sub](https://es.angie.software//angie/docs/configuration/modules/http/http_sub.md#http-sub)<br/>que permite modificar una cadena especificada en la respuesta por otra.                                                                                                                                                                                                                                                                         |
| `--with-http_upstream_probe_icmp` (PRO)                                          | Activa las sondas de eco ICMP para la directiva [upstream_probe (PRO)](https://es.angie.software//angie/docs/configuration/modules/http/http_upstream_probe.md#u-upstream-probe). Requiere soporte ICMP del sistema operativo.                                                                                                                                                                                                                                                    |
| `--with-http_v2_module`                                                          | Activa el módulo [HTTP/2](https://es.angie.software//angie/docs/configuration/modules/http/http_v2.md#http-v2).                                                                                                                                                                                                                                                                                                                                                                   |
| `--with-http_v3_module`                                                          | Activa el módulo [HTTP/3](https://es.angie.software//angie/docs/configuration/modules/http/http_v3.md#http-v3).                                                                                                                                                                                                                                                                                                                                                                   |

#### NOTE
Para compilar, se **recomienda encarecidamente** usar una biblioteca SSL
que admita el protocolo [QUIC](https://www.rfc-editor.org/rfc/rfc9000.html):

BoringSSL

Compilación con [BoringSSL](https://boringssl.googlesource.com/boringssl):

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

LibreSSL

Compilación con [LibreSSL](https://www.libressl.org/):

```console
$ ./configure
   --with-debug --with-http_v3_module
   --with-cc-opt="-I../libressl/build/include"
   --with-ld-opt="-L../libressl/build/lib"
```

QuicTLS

Compilación con [QuicTLS](https://github.com/quictls/openssl):

```console
$ ./configure
      --with-debug
      --with-http_v3_module
      --with-cc-opt="-I../quictls/build/include"
      --with-ld-opt="-L../quictls/build/lib"
```

Sin esto, la biblioteca [OpenSSL](https://openssl.org/) se usará en modo de compatibilidad, donde no se admite
el envío de [early data](https://datatracker.ietf.org/doc/html/rfc8446#section-2.3) 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](https://es.angie.software//angie/docs/configuration/modules/http/http_xslt.md#http-xslt) que permite transformar<br/>respuestas XML usando hojas de estilo XSLT.<br/><br/>Las bibliotecas **libxml2** y **libxslt** son **necesarias**<br/>para este módulo.                                                                   |
|----------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--with-google_perftools_module`                               | Activa la compilación del módulo [Google PerfTools](https://es.angie.software//angie/docs/configuration/modules/google_perftools.md#google-perftools) que proporciona soporte<br/>para perfilar los procesos worker de Angie usando [Google Performance<br/>Tools](https://github.com/gperftools/gperftools). El módulo está destinado<br/>a desarrolladores de Angie. |

Desactivación de módulos estándar:

| `--without-http`                            | Desactiva el servidor [HTTP](https://es.angie.software//angie/docs/configuration/modules/http/index.md#http-core).                                                                                                                                                                                                                                                                                                                   |
|---------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--without-http_access_module`              | Desactiva la compilación del módulo [Access](https://es.angie.software//angie/docs/configuration/modules/http/http_access.md#http-access)<br/>que permite limitar el acceso a ciertas direcciones de cliente.                                                                                                                                                                                                                        |
| `--without-http_api_module`                 | Desactiva la compilación del módulo [API](https://es.angie.software//angie/docs/configuration/modules/http/http_api.md#http-api) que<br/>proporciona una interfaz HTTP RESTful para acceder a información basada en JSON<br/>sobre la instancia del servidor web.                                                                                                                                                                    |
| `--without-http_metric_module`              | Desactiva la compilación del módulo [Metric](https://es.angie.software//angie/docs/configuration/modules/http/http_metric.md#http-metric).                                                                                                                                                                                                                                                                                           |
| `--without-http_auth_basic_module`          | Desactiva la compilación del módulo [Auth Basic](https://es.angie.software//angie/docs/configuration/modules/http/http_auth_basic.md#http-auth-basic)<br/>que permite limitar el acceso a recursos validando el nombre de usuario<br/>y la contraseña mediante el protocolo HTTP Basic Authentication.                                                                                                                               |
| `--without-http_autoindex_module`           | Desactiva la compilación del módulo [AutoIndex](https://es.angie.software//angie/docs/configuration/modules/http/http_autoindex.md#http-autoindex)<br/>que procesa solicitudes que terminan con el carácter barra<br/>(`/`) y genera un listado del directorio en caso de que el módulo<br/>[Index](https://es.angie.software//angie/docs/configuration/modules/http/http_index.md#http-index) no pueda encontrar un archivo índice. |
| `--without-http_browser_module`             | Desactiva la compilación del módulo [Browser](https://es.angie.software//angie/docs/configuration/modules/http/http_browser.md#http-browser)<br/>que crea variables cuyos valores dependen del valor del campo de cabecera<br/>`User-Agent` de la solicitud.                                                                                                                                                                         |
| `--without-http_charset_module`             | Desactiva la compilación del módulo [Charset](https://es.angie.software//angie/docs/configuration/modules/http/http_charset.md#http-charset)<br/>que añade el charset especificado al campo de cabecera de respuesta<br/>`Content-Type` y, adicionalmente, puede convertir datos de un charset<br/>a otro.                                                                                                                           |
| `--without-http_empty_gif_module`           | Desactiva la compilación del [módulo](https://es.angie.software//angie/docs/configuration/modules/http/http_empty_gif.md#http-empty-gif)<br/>que emite un GIF transparente de un píxel.                                                                                                                                                                                                                                              |
| `--without-http_fastcgi_module`             | Desactiva la compilación del módulo [FastCGI](https://es.angie.software//angie/docs/configuration/modules/http/http_fastcgi.md#http-fastcgi)<br/>que envía solicitudes a un servidor FastCGI.                                                                                                                                                                                                                                        |
| `--without-http_geo_module`                 | Desactiva la compilación del módulo [Geo](https://es.angie.software//angie/docs/configuration/modules/http/http_geo.md#http-geo) que<br/>crea variables con valores que dependen de la dirección IP del cliente.                                                                                                                                                                                                                     |
| `--without-http_gzip_module`                | Desactiva la compilación del [módulo](https://es.angie.software//angie/docs/configuration/modules/http/http_gzip.md#http-gzip) que<br/>comprime las respuestas del servidor HTTP.<br/><br/>La biblioteca **zlib** es **necesaria** para este módulo.                                                                                                                                                                                 |
| `--without-http_grpc_module`                | Desactiva la compilación del módulo [gRPC](https://es.angie.software//angie/docs/configuration/modules/http/http_grpc.md#http-grpc) que<br/>envía solicitudes a un servidor gRPC.                                                                                                                                                                                                                                                    |
| `--without-http_limit_conn_module`          | Desactiva la compilación del módulo [Limit Conn](https://es.angie.software//angie/docs/configuration/modules/http/http_limit_conn.md#http-limit-conn)<br/>que limita el número de conexiones por clave, por ejemplo, el<br/>número de conexiones desde una única dirección IP.                                                                                                                                                       |
| `--without-http_limit_req_module`           | Desactiva la compilación del módulo [Limit Req](https://es.angie.software//angie/docs/configuration/modules/http/http_limit_req.md#http-limit-req)<br/>que limita la velocidad de procesamiento de solicitudes por clave, por ejemplo,<br/>la velocidad de procesamiento de solicitudes provenientes de una única dirección IP.                                                                                                      |
| `--without-http_map_module`                 | Desactiva la compilación del módulo [Map](https://es.angie.software//angie/docs/configuration/modules/http/http_map.md#http-map) que<br/>crea variables con valores que dependen de los valores de otras variables.                                                                                                                                                                                                                  |
| `--without-http_memcached_module`           | Desactiva la compilación del módulo [Memcached](https://es.angie.software//angie/docs/configuration/modules/http/http_memcached.md#http-memcached)<br/>que obtiene respuestas de un servidor memcached.                                                                                                                                                                                                                              |
| `--without-http_mirror_module`              | Desactiva la compilación del módulo [Mirror](https://es.angie.software//angie/docs/configuration/modules/http/http_mirror.md#http-mirror)<br/>que implementa el mirroring de una solicitud original creando<br/>subsolicitudes espejo en segundo plano.                                                                                                                                                                              |
| `--without-http_prometheus_module`          | Desactiva la compilación del módulo [Prometheus](https://es.angie.software//angie/docs/configuration/modules/http/http_prometheus.md#http-prometheus)<br/>para el servidor HTTP.                                                                                                                                                                                                                                                     |
| `--without-http_proxy_module`               | Desactiva la compilación del módulo [Proxy](https://es.angie.software//angie/docs/configuration/modules/http/http_proxy.md#http-proxy) para el servidor HTTP.                                                                                                                                                                                                                                                                        |
| `--without-http_referer_module`             | Desactiva la compilación del módulo [Referer](https://es.angie.software//angie/docs/configuration/modules/http/http_referer.md#http-referer)<br/>que puede bloquear el acceso a un sitio para solicitudes con valores<br/>no válidos en el campo de cabecera `Referer`.                                                                                                                                                              |
| `--without-http_rewrite_module`             | Desactiva la compilación del módulo [Rewrite](https://es.angie.software//angie/docs/configuration/modules/http/http_rewrite.md#http-rewrite)<br/>que permite al servidor HTTP redirigir solicitudes y cambiar sus URIs.<br/><br/>La biblioteca PCRE es **necesaria** para este módulo.                                                                                                                                               |
| `--without-http_scgi_module`                | Desactiva la compilación del módulo [SCGI](https://es.angie.software//angie/docs/configuration/modules/http/http_scgi.md#http-scgi) que<br/>envía solicitudes a un servidor SCGI.                                                                                                                                                                                                                                                    |
| `--without-http_split_clients_module`       | Desactiva la compilación del módulo [Split Clients](https://es.angie.software//angie/docs/configuration/modules/http/http_split_clients.md#http-split-clients) que crea<br/>variables para pruebas A/B.                                                                                                                                                                                                                              |
| `--without-http_ssi_module`                 | Desactiva la compilación del módulo [SSI](https://es.angie.software//angie/docs/configuration/modules/http/http_ssi.md#http-ssi) que<br/>procesa comandos SSI (Server Side Includes) en respuestas que pasan<br/>a través de él.                                                                                                                                                                                                     |
| `--without-http_upstream_hash_module`       | Desactiva la compilación del módulo que implementa el método de balanceo de carga<br/>[hash](https://es.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-hash).                                                                                                                                                                                                                                              |
| `--without-http_upstream_ip_hash_module`    | Desactiva la compilación del módulo que implementa el método de balanceo de carga<br/>[ip_hash](https://es.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-ip-hash).                                                                                                                                                                                                                                        |
| `--without-http_upstream_keepalive_module`  | Desactiva la compilación del módulo que proporciona [caché de conexiones](https://es.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-keepalive) hacia servidores upstream.                                                                                                                                                                                                                                  |
| `--without-http_upstream_least_conn_module` | Desactiva la compilación del módulo que implementa el método de balanceo de carga<br/>[least_conn](https://es.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-least-conn).                                                                                                                                                                                                                                  |
| `--without-http_upstream_random_module`     | Desactiva la compilación del módulo que implementa el método de balanceo de carga<br/>[random](https://es.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-random).                                                                                                                                                                                                                                          |
| `--without-http_upstream_sticky_module`     | Desactiva la compilación del módulo que implementa la [persistencia de sesión](https://es.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-sticky), garantizando que todas las solicitudes en la sesión del cliente<br/>se envíen al mismo servidor en el upstream.                                                                                                                                          |
| `--without-http_upstream_zone_module`       | Desactiva la compilación del módulo que permite almacenar el estado en tiempo de ejecución<br/>de un upstream en una [zona de memoria compartida](https://es.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-zone).                                                                                                                                                                                         |
| `--without-http_userid_module`              | Desactiva la compilación del módulo [UserID](https://es.angie.software//angie/docs/configuration/modules/http/http_userid.md#http-userid)<br/>que establece cookies adecuadas para la identificación del cliente.                                                                                                                                                                                                                    |
| `--without-http_uwsgi_module`               | Desactiva la compilación del módulo [uWSGI](https://es.angie.software//angie/docs/configuration/modules/http/http_uwsgi.md#http-uwsgi)<br/>que envía solicitudes a un servidor uWSGI.                                                                                                                                                                                                                                                |

<a id="stream-modules"></a>

#### Módulos Stream

Activación de módulos adicionales:

#### \* - `--with-stream`, `--with-stream=dynamic`<br/>  - Activa el módulo principal [Stream](https://es.angie.software//angie/docs/configuration/modules/stream/index.md#stream-core)<br/>    para proxying genérico TCP/UDP y balanceo de carga.

| `--with-stream_acme_module`                                        | Activa la compilación del módulo [ACME](https://es.angie.software//angie/docs/configuration/modules/stream/stream_acme.md#stream-acme),<br/>que habilita el protocolo ACME.                                                                                                                                                                                                                                                                    |
|--------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--with-stream_geoip_module`, `--with-stream_geoip_module=dynamic` | Activa el módulo [GeoIP](https://es.angie.software//angie/docs/configuration/modules/stream/stream_geoip.md#stream-geoip)<br/>que crea variables en función de la dirección IP del cliente y de las<br/>bases de datos precompiladas [MaxMind](http://www.maxmind.com/).                                                                                                                                                                       |
| `--with-stream_mqtt_preread_module`                                | Activa el módulo [MQTT Preread](https://es.angie.software//angie/docs/configuration/modules/stream/stream_mqtt_preread.md#stream-mqtt-preread) que permite<br/>extraer IDs de cliente y nombres de usuario de paquetes `CONNECT` en<br/>las versiones MQTT [3.1.1](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718028)<br/>y [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901033). |
| `--with-stream_rdp_preread_module`                                 | Activa el módulo [RDP Preread](https://es.angie.software//angie/docs/configuration/modules/stream/stream_rdp_preread.md#stream-rdp-preread) que permite<br/>extraer cookies de sesiones RDP.                                                                                                                                                                                                                                                   |
| `--with-stream_realip_module`                                      | Activa el módulo [RealIP](https://es.angie.software//angie/docs/configuration/modules/stream/stream_realip.md#stream-realip)<br/>que cambia la dirección del cliente por la dirección enviada en la cabecera<br/>del protocolo PROXY.                                                                                                                                                                                                          |
| `--with-stream_ssl_module`                                         | Activa el soporte [SSL](https://es.angie.software//angie/docs/configuration/modules/stream/stream_ssl.md#stream-ssl) para el<br/>servidor Stream.<br/><br/>La biblioteca OpenSSL es **necesaria** para compilar y ejecutar este módulo.                                                                                                                                                                                                        |
| `--with-stream_ssl_preread_module`                                 | Activa el módulo [SSL Preread](https://es.angie.software//angie/docs/configuration/modules/stream/stream_ssl_preread.md#stream-ssl-preread) que permite<br/>extraer información de los mensajes [ClientHello](https://datatracker.ietf.org/doc/html/rfc5246#section-7.4.1.2)<br/>sin terminar SSL/TLS.                                                                                                                                         |
| `--with-stream_upstream_probe_icmp` (PRO)                          | Activa las sondas de eco ICMP para la directiva [upstream_probe (PRO)](https://es.angie.software//angie/docs/configuration/modules/stream/stream_upstream_probe.md#s-u-upstream-probe). Requiere soporte ICMP del sistema operativo.                                                                                                                                                                                                           |

Desactivación de módulos estándar:

#### \* - `--without-stream_access_module`<br/>  - Desactiva el módulo [Access](https://es.angie.software//angie/docs/configuration/modules/stream/stream_access.md#stream-access)<br/>    que permite limitar el acceso a ciertas direcciones de cliente.

| `--without-stream_geo_module`                 | Desactiva el módulo [Geo](https://es.angie.software//angie/docs/configuration/modules/stream/stream_geo.md#stream-geo) que<br/>crea variables con valores que dependen de la dirección IP del cliente.                                                               |
|-----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--without-stream_limit_conn_module`          | Desactiva el módulo [Limit Conn](https://es.angie.software//angie/docs/configuration/modules/stream/stream_limit_conn.md#stream-limit-conn) que limita el<br/>número de conexiones por clave, por ejemplo, el número de conexiones<br/>desde una única dirección IP. |
| `--without-stream_map_module`                 | Desactiva el módulo [Map](https://es.angie.software//angie/docs/configuration/modules/stream/stream_map.md#stream-map) que<br/>crea variables con valores que dependen de los valores de otras variables.                                                            |
| `--without-stream_return_module`              | Desactiva el módulo [Return](https://es.angie.software//angie/docs/configuration/modules/stream/stream_return.md#stream-return)<br/>que envía el valor especificado al cliente y luego cierra la conexión.                                                           |
| `--without-stream_set_module`                 | Desactiva el módulo [Set](https://es.angie.software//angie/docs/configuration/modules/stream/stream_set.md#stream-set) que<br/>establece un valor para una variable.                                                                                                 |
| `--without-stream_split_clients_module`       | Desactiva el módulo [Split Clients](https://es.angie.software//angie/docs/configuration/modules/stream/stream_split_clients.md#stream-split-clients) que crea<br/>variables para pruebas A/B.                                                                        |
| `--without-stream_upstream_hash_module`       | Desactiva el módulo que implementa el método de balanceo de carga<br/>[hash](https://es.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-hash).                                                                                        |
| `--without-stream_upstream_least_conn_module` | Desactiva el módulo que implementa el método de balanceo de carga<br/>[least_conn](https://es.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-least-conn).                                                                            |
| `--without-stream_upstream_random_module`     | Desactiva el módulo que implementa el método de balanceo de carga<br/>[random](https://es.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-random).                                                                                    |
| `--without-stream_upstream_zone_module`       | Desactiva el módulo que permite almacenar el estado en tiempo de ejecución de un<br/>upstream en una [zona de memoria compartida](https://es.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-zone).                                   |

<a id="mail"></a>

#### Mail

Activación de módulos adicionales:

#### \* - `--with-mail`, `--with-mail=dynamic`<br/>  - Activa el módulo principal [Mail](https://es.angie.software//angie/docs/configuration/modules/mail/index.md#mail-core)<br/>    que admite POP3, IMAP4 y SMTP.

| `--with-mail_ssl_module`   | Activa el soporte [SSL](https://es.angie.software//angie/docs/configuration/modules/mail/mail_ssl.md#mail-ssl) para<br/>el servidor Mail.<br/><br/>La biblioteca OpenSSL es **necesaria** para compilar y ejecutar este módulo.   |
|----------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

Desactivación de módulos estándar:

#### \* - `--without-mail_imap_module`<br/>  - Desactiva el protocolo [IMAP](https://es.angie.software//angie/docs/configuration/modules/mail/mail_imap.md#mail-imap) en<br/>    el servidor Mail.

| `--without-mail_pop3_module`   | Desactiva el protocolo [POP3](https://es.angie.software//angie/docs/configuration/modules/mail/mail_pop3.md#mail-pop3) en<br/>el servidor Mail.   |
|--------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| `--without-mail_smtp_module`   | Desactiva el protocolo [SMTP](https://es.angie.software//angie/docs/configuration/modules/mail/mail_smtp.md#mail-smtp) en<br/>el servidor Mail.   |

<a id="other-options"></a>

#### Otras opciones

#### \* - `--with-cpp_test_module`<br/>  - Activa el módulo de pruebas CPP. Se utiliza principalmente para desarrollo<br/>    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<br/>cargar y usar módulos dinámicos que se hayan compilado para la misma versión de Angie,<br/>incluso si dichos módulos se compilaron con opciones diferentes. Angie PRO solo puede<br/>cargar módulos compilados para Angie PRO; los módulos de Angie (OSS) se rechazan debido<br/>a una firma de módulo diferente. |
| `--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`.<br/>Al usar la biblioteca PCRE del sistema en FreeBSD,<br/>se debe especificar `--with-cc-opt="-I /usr/local/include"`. Si<br/>es necesario aumentar el número de archivos admitidos por `select()`,<br/>también puede especificarse aquí, por ejemplo `--with-cc-opt="-D<br/>FD_SETSIZE=2048"`.                                        |
| `--with-ld-opt=`parameters  | Establece parámetros adicionales que se usarán durante el enlace. Al usar<br/>la biblioteca PCRE del sistema en FreeBSD, se debe especificar<br/>`--with-ld-opt="-L /usr/local/lib"`.                                                                                                                                                                                                                            |
| `--with-cpu-opt=`cpu        | Activa compilaciones optimizadas para uno de los siguientes procesadores:<br/>`pentium`, `pentiumpro`, `pentium3`, `pentium4`,<br/>`athlon`, `opteron`, `sparc32`, `sparc64`,<br/>`ppc64`.                                                                                                                                                                                                                       |

<a id="examples-2"></a>

### Ejemplos

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

```console
$ ./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 habilitan pools de hilos para el manejo eficiente de cargas altas:

```console
$ ./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 proxying TCP/UDP**. Esta configuración configura un balanceador
de carga para servicios HTTP y no HTTP:

```console
$ ./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 proxying HTTP como TCP/UDP:

```console
$ ./configure \
    --prefix=/usr/local/angie \                        # Directorio de instalación para 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 \                           # Habilita el módulo SSL para HTTPS
    --with-http_v2_module \                            # Habilita soporte HTTP/2 para mejorar el rendimiento
    --with-http_realip_module \                        # Permite a Angie manejar correctamente las cabeceras X-Real-IP y X-Forwarded-For
    --with-http_gzip_static_module \                   # Sirve archivos .gz precomprimidos para reducir la carga de CPU
    --with-http_stub_status_module \                   # Proporciona una página de estado
    --with-threads \                                   # Habilita pools de hilos para mejorar el rendimiento bajo alta carga
    --with-file-aio \                                  # Habilita E/S asíncrona
    --with-stream \                                    # Habilita 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 \                                  # Habilita compilación just-in-time 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é
```
