<!-- review: finished -->

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

# Compilando o Angie a partir do Código-fonte

Recomendamos instalar o Angie a partir dos
[pacotes](https://pt.angie.software//angie/docs/installation/oss_packages.md#oss-packages) oficiais pré-compilados.
No entanto, se você ainda precisar de sua própria compilação:

1. Baixe o arquivo `.tar.gz` do
   [nosso site](https://download.angie.software/files/):
   ```console
   $ curl -O https://download.angie.software/files/angie-|version|.tar.gz
   ```
2. Descompacte o arquivo e navegue até o diretório do código-fonte:
   ```console
   $ tar -xpf angie-|version|.tar.gz
   $ cd angie-|version|
   ```
3. Para preparar a compilação, use o script **./configure**,
   que determina as características específicas do SO onde a compilação ocorre,
   particularmente os métodos que o Angie pode usar para lidar com conexões.
   Após uma execução bem-sucedida, o script cria um `Makefile`.

   Antes de executar **./configure**, revise e defina as
   [opções de compilação](#configure) necessárias:
   ```console
   $ ./configure <OPTIONS>
   ```
4. Quando o `Makefile` estiver pronto, compile e instale o Angie:
   ```console
   $ make
   $ make install
   ```

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

## Opções de Compilação

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

### Geral

| Opção                  | Descrição                                                                                                                                                                                                                                                                                                 | Padrão                                                             |
|------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------|
| `--help`               | Imprime uma mensagem de ajuda.                                                                                                                                                                                                                                                                            |                                                                    |
| `--user=`name          | Define o nome de um usuário sem privilégios cujas credenciais serão usadas pelos<br/>processos worker. Após a instalação, o nome sempre pode ser alterado no<br/>arquivo de configuração `angie.conf` usando a diretiva [user](https://pt.angie.software//angie/docs/configuration/modules/core.md#user). | `nobody`                                                           |
| `--group=`name         | Define o nome de um grupo cujas credenciais serão usadas pelos<br/>processos worker. Após a instalação, o nome sempre pode ser alterado no<br/>arquivo de configuração `angie.conf` usando a diretiva [user](https://pt.angie.software//angie/docs/configuration/modules/core.md#user).                   | configuração de `--user`                                           |
| `--build=`name         | Define um nome opcional para a compilação.                                                                                                                                                                                                                                                                |                                                                    |
| `--builddir=`path      | Define o diretório de compilação.                                                                                                                                                                                                                                                                         | `objs`                                                             |
| `--feature-cache=`path | Especifica o diretório para cache de artefatos de compilação.                                                                                                                                                                                                                                             | Se definido sem um caminho, a configuração de `--builddir` é usada |

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

### Caminhos

| Opção                               | Descrição                                                                                                                                                                                                                                                                                                                                                              | Padrão                      |
|-------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| `--prefix=`path                     | Define o diretório que armazenará os arquivos do servidor. Este mesmo diretório<br/>também será usado para todos os caminhos relativos definidos por **./configure**<br/>(exceto para caminhos para fontes de biblioteca) e no arquivo de configuração<br/>`angie.conf`.                                                                                               | `/usr/local/angie`          |
| `--sbin-path=`path                  | Define o nome do executável do Angie. Este nome é usado apenas durante<br/>a instalação.                                                                                                                                                                                                                                                                               | `<prefix>/sbin/angie`       |
| `--modules-path=`path               | Define o diretório onde os módulos dinâmicos serão instalados.                                                                                                                                                                                                                                                                                                         | `<prefix>/modules`          |
| `--conf-path=`path                  | Define o nome do [arquivo de configuração](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile) `angie.conf`.<br/>Se necessário, você sempre pode iniciar o Angie com um arquivo de configuração<br/>diferente usando a [opção de linha de comando](https://pt.angie.software//angie/docs/configuration/runtime.md#runtime-cli-options) `-c`. | `<prefix>/conf/angie.conf`  |
| `--error-log-path=`path             | Define o nome do arquivo de log principal de erro, aviso e diagnóstico.<br/>Após a instalação, o nome do arquivo sempre pode ser alterado no<br/>arquivo de configuração `angie.conf` usando a diretiva [error_log](https://pt.angie.software//angie/docs/configuration/modules/core.md#error-log).                                                                    | `<prefix>/logs/error.log`   |
| `--pid-path=`path                   | Define o nome do arquivo `angie.pid` que armazenará o ID do processo<br/>do processo principal. Após a instalação, o nome do arquivo sempre pode ser<br/>alterado no arquivo de configuração `angie.conf` usando a diretiva [pid](https://pt.angie.software//angie/docs/configuration/modules/core.md#pid).                                                            | `<prefix>/logs/angie.pid`   |
| `--lock-path=`path                  | Define o prefixo para nomes de arquivos de bloqueio. Após a instalação,<br/>o valor sempre pode ser alterado no arquivo de configuração `angie.conf`<br/>usando a diretiva [lock_file](https://pt.angie.software//angie/docs/configuration/modules/core.md#lock-file).                                                                                                 | `<prefix>/logs/angie.lock`  |
| `--http-acme-client-path=`path      | Define o diretório para armazenar certificados e chaves para<br/>blocos `server` que têm diretivas [acme](https://pt.angie.software//angie/docs/configuration/modules/http/http_acme.md#id1) definidas.                                                                                                                                                                | `<prefix>/acme_client`      |
| `--http-log-path=`path              | Define o nome do arquivo de log de requisições principal para o servidor HTTP. Após<br/>a instalação, o nome do arquivo sempre pode ser alterado no<br/>arquivo de configuração `angie.conf` usando a diretiva [access_log](https://pt.angie.software//angie/docs/configuration/modules/http/http_log.md#access-log).                                                  | `<prefix>/logs/access.log`  |
| `--http-client-body-temp-path=`path | Define o diretório para armazenar arquivos temporários que contêm corpos de requisições<br/>de clientes. Após a instalação, o diretório sempre pode ser alterado no<br/>arquivo de configuração `angie.conf` usando a diretiva<br/>[client_body_temp_path](https://pt.angie.software//angie/docs/configuration/modules/http/index.md#client-body-temp-path).           | `<prefix>/client_body_temp` |
| `--http-proxy-temp-path=`path       | Define o diretório para armazenar arquivos temporários com dados recebidos de<br/>servidores proxy. Após a instalação, o diretório sempre pode ser alterado<br/>no arquivo de configuração `angie.conf` usando a diretiva<br/>[proxy_temp_path](https://pt.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-temp-path).                       | `<prefix>/proxy_temp`       |
| `--http-fastcgi-temp-path=`path     | Define o diretório para armazenar arquivos temporários com dados recebidos de<br/>servidores FastCGI. Após a instalação, o diretório sempre pode ser alterado<br/>no arquivo de configuração `angie.conf` usando a diretiva<br/>[fastcgi_temp_path](https://pt.angie.software//angie/docs/configuration/modules/http/http_fastcgi.md#fastcgi-temp-path).               | `<prefix>/fastcgi_temp`     |
| `--http-uwsgi-temp-path=`path       | Define o diretório para armazenar arquivos temporários com dados recebidos de<br/>servidores uWSGI. Após a instalação, o diretório sempre pode ser alterado no<br/>arquivo de configuração `angie.conf` usando a diretiva<br/>[uwsgi_temp_path](https://pt.angie.software//angie/docs/configuration/modules/http/http_uwsgi.md#uwsgi-temp-path).                       | `<prefix>/uwsgi_temp`       |
| `--http-scgi-temp-path=`path        | Define o diretório para armazenar arquivos temporários com dados recebidos de<br/>servidores SCGI. Após a instalação, o diretório sempre pode ser alterado no<br/>arquivo de configuração `angie.conf` usando a diretiva<br/>[scgi_temp_path](https://pt.angie.software//angie/docs/configuration/modules/http/http_scgi.md#scgi-temp-path).                           | `<prefix>/scgi_temp`        |

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

### Recursos e dependências

| `--with-select_module`, `--without-select_module`   | Habilita ou desabilita a construção de um módulo que permite ao servidor trabalhar com<br/>o método `select()`. Este módulo é construído automaticamente se a<br/>plataforma não parecer suportar métodos mais apropriados como<br/>`kqueue`, `epoll`, ou `/dev/poll`.                                                                                                                                                                                                                                                                                                     |
|-----------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--with-poll_module`, `--without-poll_module`       | Habilita ou desabilita a construção de um módulo que permite ao servidor trabalhar com<br/>o método `poll()`. Este módulo é construído automaticamente se a<br/>plataforma não parecer suportar métodos mais apropriados como<br/>`kqueue`, `epoll`, ou `/dev/poll`.                                                                                                                                                                                                                                                                                                       |
| `--with-threads`                                    | Habilita o uso de [pools de threads](https://pt.angie.software//angie/docs/configuration/modules/core.md#thread-pool)<br/>(modo `aio threads`).                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `--with-file-aio`                                   | Habilita o uso de [I/O de arquivo assíncrono](https://pt.angie.software//angie/docs/configuration/modules/http/index.md#aio) (AIO) no FreeBSD<br/>e Linux (modo `aio on`).                                                                                                                                                                                                                                                                                                                                                                                                 |
| `--with-debug`                                      | Habilita o [log de depuração](https://pt.angie.software//angie/docs/troubleshooting.md#debug-logging).                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| `--without-http-cache`                              | Desabilita o cache HTTP.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `--with-pcre`, `--with-pcre=`path                   | Habilita o uso da biblioteca PCRE.<br/><br/>O parâmetro opcional define o caminho para os fontes da biblioteca PCRE.<br/>A distribuição da biblioteca precisa ser baixada do site [PCRE](http://www.pcre.org/) e extraída. O resto é feito pelos comandos<br/>**./configure** e **make** do Angie.<br/><br/>A biblioteca é **obrigatória** para suporte a expressões regulares na<br/>diretiva `location` e para o módulo [Rewrite](https://pt.angie.software//angie/docs/configuration/modules/http/http_rewrite.md#http-rewrite).                                        |
| `--with-pcre-opt=`parameters                        | Define parâmetros adicionais de construção para PCRE.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| `--with-pcre-jit`                                   | Constrói a biblioteca PCRE com suporte à compilação JIT (a diretiva [pcre_jit](https://pt.angie.software//angie/docs/configuration/modules/core.md#pcre-jit)).                                                                                                                                                                                                                                                                                                                                                                                                             |
| `--without-pcre`                                    | Desabilita o uso da biblioteca PCRE.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `--without-pcre2`                                   | Desabilita o uso da biblioteca PCRE2 em vez da biblioteca PCRE original.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `--with-libatomic`, `--with-libatomic=`path         | Habilita a construção com a biblioteca **libatomic_ops**.<br/>O parâmetro opcional define o caminho para os fontes da biblioteca.                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `--with-openssl=`path                               | Habilita construção estática e define o caminho para os fontes da biblioteca OpenSSL. AWS-LC pode ser usado como uma biblioteca compatível com OpenSSL.                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `--with-openssl-opt=`parameters                     | Define parâmetros adicionais de construção para OpenSSL.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `--with-ntls`                                       | Habilita suporte NTLS no módulo HTTP ([lado servidor](https://pt.angie.software//angie/docs/configuration/modules/http/http_ssl.md#ssl-ntls), [lado cliente](https://pt.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-ssl-ntls)) e módulo stream<br/>([lado servidor](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_ssl.md#s-ssl-ntls), [lado cliente](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_proxy.md#s-proxy-ssl-ntls)) ao construir com uma biblioteca SSL que suporta NTLS. |
| `--with-zlib=`path                                  | Define o caminho para os fontes da biblioteca **zlib**. A<br/>distribuição da biblioteca (versão 1.1.3 — 1.2.11) precisa ser baixada do<br/>[site zlib](http://zlib.net/) e extraída. O resto é feito pelos<br/>comandos **./configure** e **make** do Angie.<br/><br/>A biblioteca é **obrigatória** para o módulo [GZip](https://pt.angie.software//angie/docs/configuration/modules/http/http_gzip.md#http-gzip).                                                                                                                                                       |
| `--with-zlib-opt=`parameters                        | Define parâmetros adicionais de construção para **zlib**.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| `--with-zlib-asm=`cpu                               | Habilita o uso de otimizações assembly para construir **zlib**,<br/>otimizado para um dos seguintes processadores: `pentium`,<br/>`pentiumpro`.                                                                                                                                                                                                                                                                                                                                                                                                                            |

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

### Habilitando e Desabilitando Módulos

Você pode desabilitar módulos que estão habilitados por padrão, ou habilitar módulos
que estão disponíveis mas desabilitados por padrão.

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

#### HTTP

Habilitando módulos adicionais:

| `--with-http_acme_module`                                                        | Habilita a construção do módulo [ACME](https://pt.angie.software//angie/docs/configuration/modules/http/http_acme.md#http-acme),<br/>que habilita o protocolo ACME.                                                                                                                                                                                                                                                                                                     |
|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--with-http_addition_module`                                                    | Habilita a construção do módulo [Addition](https://pt.angie.software//angie/docs/configuration/modules/http/http_addition.md#http-addition) que permite adicionar texto<br/>antes e depois de uma resposta.                                                                                                                                                                                                                                                             |
| `--with-http_auth_request_module`                                                | Habilita a construção do módulo [Auth Request](https://pt.angie.software//angie/docs/configuration/modules/http/http_auth_request.md#http-auth-request) que fornece<br/>capacidade de autorização de cliente baseada no resultado de uma subrequisição.                                                                                                                                                                                                                 |
| `--with-http_dav_module`                                                         | Habilita a construção do módulo [DAV](https://pt.angie.software//angie/docs/configuration/modules/http/http_dav.md#http-dav)<br/>destinado a automatizar tarefas de gerenciamento de arquivos no servidor via<br/>protocolo WebDAV.                                                                                                                                                                                                                                     |
| `--with-http_degradation_module`                                                 | Habilita a construção do módulo Degradation que permite retornar códigos de status HTTP<br/>204 ou 444 para certos blocos `location`.<br/><br/>Este módulo só pode ser usado em casos onde `sbrk(0)`<br/>mostra a quantidade real de memória alocada para o processo. Em outras<br/>palavras, o módulo funciona no FreeBSD até a versão 7.0 por padrão. A partir<br/>da versão 7.0, funciona apenas se `MALLOC_OPTIONS=Dm` estiver definido. No<br/>Linux não funciona. |
| `--with-http_flv_module`                                                         | Habilita a construção do módulo [FLV](https://pt.angie.software//angie/docs/configuration/modules/http/http_flv.md#http-flv)<br/>que fornece suporte de pseudo-streaming do lado do servidor para arquivos<br/>Flash Video (FLV).                                                                                                                                                                                                                                       |
| `--with-http_geoip_module`, `--with-http_geoip_module=dynamic`                   | Habilita a construção do módulo [GeoIP](https://pt.angie.software//angie/docs/configuration/modules/http/http_geoip.md#http-geoip) que cria variáveis cujos<br/>valores são determinados baseados no endereço IP do cliente e bancos de dados<br/>prontos da [MaxMind](http://www.maxmind.com/).                                                                                                                                                                        |
| `--with-http_gunzip_module`                                                      | Habilita a construção do módulo [GunZIP](https://pt.angie.software//angie/docs/configuration/modules/http/http_gunzip.md#http-gunzip) que permite descomprimir<br/>respostas com `Content-Encoding: gzip` para clientes que não<br/>suportam o método de compressão `gzip`.                                                                                                                                                                                             |
| `--with-http_gzip_static_module`                                                 | Habilita a construção do módulo [Gzip Static](https://pt.angie.software//angie/docs/configuration/modules/http/http_gzip_static.md#http-gzip-static) que permite servir<br/>um arquivo pré-comprimido com o mesmo nome e a extensão `.gz`<br/>em vez de um arquivo regular.                                                                                                                                                                                             |
| `--with-http_image_filter_module`,<br/>`--with-http_image_filter_module=dynamic` | Habilita a construção do módulo [Image Filter](https://pt.angie.software//angie/docs/configuration/modules/http/http_image_filter.md#http-image-filter) que permite<br/>transformar imagens nos formatos JPEG, GIF, PNG e WebP.                                                                                                                                                                                                                                         |
| `--with-http_mp4_module`                                                         | Habilita a construção do módulo [MP4](https://pt.angie.software//angie/docs/configuration/modules/http/http_mp4.md#http-mp4)<br/>que fornece suporte de pseudo-streaming do lado do servidor para arquivos no formato MP4.                                                                                                                                                                                                                                              |
| `--with-http_perl_module`, `--with-http_perl_module=dynamic`                     | Habilita a construção do módulo [Perl](https://pt.angie.software//angie/docs/configuration/modules/http/http_perl.md#http-perl).                                                                                                                                                                                                                                                                                                                                        |
| `--with-perl_modules_path=`path                                                  | Define o diretório onde os arquivos de módulo Perl estarão localizados.                                                                                                                                                                                                                                                                                                                                                                                                 |
| `--with-perl=`path                                                               | Define o nome do arquivo executável Perl.                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `--with-http_random_index_module`                                                | Habilita a construção do módulo [Random Index](https://pt.angie.software//angie/docs/configuration/modules/http/http_random_index.md#http-random-index) que atende requisições<br/>terminadas com uma barra (`/`) e retorna um arquivo aleatório como<br/>arquivo de índice do diretório.                                                                                                                                                                               |
| `--with-http_realip_module`                                                      | Habilita a construção do módulo [RealIP](https://pt.angie.software//angie/docs/configuration/modules/http/http_realip.md#http-realip) que permite alterar o<br/>endereço do cliente para aquele passado no campo de cabeçalho especificado.                                                                                                                                                                                                                             |
| `--with-http_secure_link_module`                                                 | Habilita a construção do módulo [Secure Link](https://pt.angie.software//angie/docs/configuration/modules/http/http_secure_link.md#http-secure-link).                                                                                                                                                                                                                                                                                                                   |
| `--with-http_slice_module`                                                       | Habilita a construção do módulo [Slice](https://pt.angie.software//angie/docs/configuration/modules/http/http_slice.md#http-slice) que permite dividir uma requisição em<br/>subrequisições, cada uma retornando um intervalo específico da resposta.<br/>O módulo fornece cache eficiente de respostas grandes.                                                                                                                                                        |
| `--with-http_ssl_module`                                                         | Habilita suporte [SSL](https://pt.angie.software//angie/docs/configuration/modules/http/http_ssl.md#http-ssl) para o<br/>servidor HTTP.<br/><br/>A biblioteca OpenSSL é **obrigatória** para este módulo.                                                                                                                                                                                                                                                               |
| `--with-http_stub_status_module`                                                 | Habilita a construção do módulo [Stub Status](https://pt.angie.software//angie/docs/configuration/modules/http/http_stub_status.md#http-stub-status) que fornece acesso a<br/>informações básicas de status do servidor.                                                                                                                                                                                                                                                |
| `--with-http_sub_module`                                                         | Habilita a construção do módulo [Sub](https://pt.angie.software//angie/docs/configuration/modules/http/http_sub.md#http-sub)<br/>que permite modificar uma string especificada na resposta para outra.                                                                                                                                                                                                                                                                  |
| `--with-http_upstream_probe_icmp` (PRO)                                          | Habilita sondagens ICMP echo para a diretiva [upstream_probe (PRO)](https://pt.angie.software//angie/docs/configuration/modules/http/http_upstream_probe.md#u-upstream-probe). Requer suporte ICMP do sistema operacional.                                                                                                                                                                                                                                              |
| `--with-http_v2_module`                                                          | Habilita o módulo [HTTP/2](https://pt.angie.software//angie/docs/configuration/modules/http/http_v2.md#http-v2).                                                                                                                                                                                                                                                                                                                                                        |
| `--with-http_v3_module`                                                          | Habilita o módulo [HTTP/3](https://pt.angie.software//angie/docs/configuration/modules/http/http_v3.md#http-v3).                                                                                                                                                                                                                                                                                                                                                        |

#### NOTE
Para construção, é **fortemente recomendado** usar uma biblioteca SSL
que suporte o protocolo [QUIC](https://www.rfc-editor.org/rfc/rfc9000.html):

BoringSSL

Construindo com [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

Construindo com [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

Construindo com [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"
```

Sem isso, a biblioteca [OpenSSL](https://openssl.org/) será usada em modo de compatibilidade, onde
o envio de [early data](https://datatracker.ietf.org/doc/html/rfc8446#section-2.3) não é
suportado e outros recursos estão ausentes, como reutilização de sessão. Tal
construção será capaz de interagir **apenas** com clientes e servidores
usando OpenSSL no mesmo modo.

| `--with-http_xslt_module`, `--with-http_xslt_module=dynamic`   | Habilita a construção do módulo [XSLT](https://pt.angie.software//angie/docs/configuration/modules/http/http_xslt.md#http-xslt) que permite transformar<br/>respostas XML usando folhas de estilo XSLT.<br/><br/>As bibliotecas **libxml2** e **libxslt** são **obrigatórias**<br/>para este módulo.                                                                     |
|----------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--with-google_perftools_module`                               | Habilita a construção do módulo [Google PerfTools](https://pt.angie.software//angie/docs/configuration/modules/google_perftools.md#google-perftools) que fornece suporte<br/>para criação de perfil de processos worker do Angie usando [Google Performance<br/>Tools](https://github.com/gperftools/gperftools). O módulo é destinado<br/>aos desenvolvedores do Angie. |

Desabilitando módulos padrão:

| `--without-http`                            | Desabilita o servidor [HTTP](https://pt.angie.software//angie/docs/configuration/modules/http/index.md#http-core).                                                                                                                                                                                                                                                                                                           |
|---------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--without-http_access_module`              | Desabilita a construção do módulo [Access](https://pt.angie.software//angie/docs/configuration/modules/http/http_access.md#http-access)<br/>que permite limitar o acesso a determinados endereços de cliente.                                                                                                                                                                                                                |
| `--without-http_api_module`                 | Desabilita a construção do módulo [API](https://pt.angie.software//angie/docs/configuration/modules/http/http_api.md#http-api) que<br/>fornece uma interface HTTP RESTful para acessar informações baseadas em JSON<br/>sobre a instância do servidor web.                                                                                                                                                                   |
| `--without-http_metric_module`              | Desabilita a construção do módulo [Metric](https://pt.angie.software//angie/docs/configuration/modules/http/http_metric.md#http-metric).                                                                                                                                                                                                                                                                                     |
| `--without-http_auth_basic_module`          | Desabilita a construção do módulo [Auth Basic](https://pt.angie.software//angie/docs/configuration/modules/http/http_auth_basic.md#http-auth-basic)<br/>que permite limitar o acesso a recursos validando o nome de usuário<br/>e senha usando o protocolo HTTP Basic Authentication.                                                                                                                                        |
| `--without-http_autoindex_module`           | Desabilita a construção do módulo [AutoIndex](https://pt.angie.software//angie/docs/configuration/modules/http/http_autoindex.md#http-autoindex)<br/>que processa solicitações terminadas com o caractere de barra<br/>(`/`) e produz uma listagem de diretório caso o módulo [Index](https://pt.angie.software//angie/docs/configuration/modules/http/http_index.md#http-index) não consiga encontrar um arquivo de índice. |
| `--without-http_browser_module`             | Desabilita a construção do módulo [Browser](https://pt.angie.software//angie/docs/configuration/modules/http/http_browser.md#http-browser)<br/>que cria variáveis cujos valores dependem do valor do<br/>campo de cabeçalho de solicitação `User-Agent`.                                                                                                                                                                     |
| `--without-http_charset_module`             | Desabilita a construção do módulo [Charset](https://pt.angie.software//angie/docs/configuration/modules/http/http_charset.md#http-charset)<br/>que adiciona o charset especificado ao campo de cabeçalho de resposta<br/>`Content-Type` e pode adicionalmente converter dados de um charset<br/>para outro.                                                                                                                  |
| `--without-http_empty_gif_module`           | Desabilita a construção do [módulo](https://pt.angie.software//angie/docs/configuration/modules/http/http_empty_gif.md#http-empty-gif)<br/>que emite um GIF transparente de um único pixel.                                                                                                                                                                                                                                  |
| `--without-http_fastcgi_module`             | Desabilita a construção do módulo [FastCGI](https://pt.angie.software//angie/docs/configuration/modules/http/http_fastcgi.md#http-fastcgi)<br/>que passa solicitações para um servidor FastCGI.                                                                                                                                                                                                                              |
| `--without-http_geo_module`                 | Desabilita a construção do módulo [Geo](https://pt.angie.software//angie/docs/configuration/modules/http/http_geo.md#http-geo) que<br/>cria variáveis com valores dependendo do endereço IP do cliente.                                                                                                                                                                                                                      |
| `--without-http_gzip_module`                | Desabilita a construção do [módulo](https://pt.angie.software//angie/docs/configuration/modules/http/http_gzip.md#http-gzip) que<br/>comprime as respostas do servidor HTTP.<br/><br/>A biblioteca **zlib** é **obrigatória** para este módulo.                                                                                                                                                                              |
| `--without-http_grpc_module`                | Desabilita a construção do módulo [gRPC](https://pt.angie.software//angie/docs/configuration/modules/http/http_grpc.md#http-grpc) que<br/>passa solicitações para um servidor gRPC.                                                                                                                                                                                                                                          |
| `--without-http_limit_conn_module`          | Desabilita a construção do módulo [Limit Conn](https://pt.angie.software//angie/docs/configuration/modules/http/http_limit_conn.md#http-limit-conn)<br/>que limita o número de conexões por chave, por exemplo, o<br/>número de conexões de um único endereço IP.                                                                                                                                                            |
| `--without-http_limit_req_module`           | Desabilita a construção do módulo [Limit Req](https://pt.angie.software//angie/docs/configuration/modules/http/http_limit_req.md#http-limit-req)<br/>que limita a taxa de processamento de solicitações por chave, por exemplo, a<br/>taxa de processamento de solicitações vindas de um único endereço IP.                                                                                                                  |
| `--without-http_map_module`                 | Desabilita a construção do módulo [Map](https://pt.angie.software//angie/docs/configuration/modules/http/http_map.md#http-map) que<br/>cria variáveis com valores dependendo dos valores de outras variáveis.                                                                                                                                                                                                                |
| `--without-http_memcached_module`           | Desabilita a construção do módulo [Memcached](https://pt.angie.software//angie/docs/configuration/modules/http/http_memcached.md#http-memcached)<br/>que obtém respostas de um servidor memcached.                                                                                                                                                                                                                           |
| `--without-http_mirror_module`              | Desabilita a construção do módulo [Mirror](https://pt.angie.software//angie/docs/configuration/modules/http/http_mirror.md#http-mirror) que<br/>implementa o espelhamento de uma solicitação original criando<br/>sub-solicitações de espelho em segundo plano.                                                                                                                                                              |
| `--without-http_prometheus_module`          | Desabilita a construção do módulo [Prometheus](https://pt.angie.software//angie/docs/configuration/modules/http/http_prometheus.md#http-prometheus)<br/>para o servidor HTTP.                                                                                                                                                                                                                                                |
| `--without-http_proxy_module`               | Desabilita a construção do módulo [Proxy](https://pt.angie.software//angie/docs/configuration/modules/http/http_proxy.md#http-proxy) para o servidor HTTP.                                                                                                                                                                                                                                                                   |
| `--without-http_referer_module`             | Desabilita a construção do módulo [Referer](https://pt.angie.software//angie/docs/configuration/modules/http/http_referer.md#http-referer)<br/>que pode bloquear o acesso a um site para solicitações com valores<br/>inválidos no campo de cabeçalho `Referer`.                                                                                                                                                             |
| `--without-http_rewrite_module`             | Desabilita a construção do módulo [Rewrite](https://pt.angie.software//angie/docs/configuration/modules/http/http_rewrite.md#http-rewrite)<br/>que permite ao servidor HTTP redirecionar solicitações e alterar seus<br/>URIs.<br/><br/>A biblioteca PCRE é **obrigatória** para este módulo.                                                                                                                                |
| `--without-http_scgi_module`                | Desabilita a construção do módulo [SCGI](https://pt.angie.software//angie/docs/configuration/modules/http/http_scgi.md#http-scgi) que<br/>passa solicitações para um servidor SCGI.                                                                                                                                                                                                                                          |
| `--without-http_split_clients_module`       | Desabilita a construção do módulo [Split Clients](https://pt.angie.software//angie/docs/configuration/modules/http/http_split_clients.md#http-split-clients) que cria<br/>variáveis para testes A/B.                                                                                                                                                                                                                         |
| `--without-http_ssi_module`                 | Desabilita a construção do módulo [SSI](https://pt.angie.software//angie/docs/configuration/modules/http/http_ssi.md#http-ssi) que<br/>processa comandos SSI (Server Side Includes) em respostas que passam<br/>por ele.                                                                                                                                                                                                     |
| `--without-http_upstream_hash_module`       | Desabilita a construção do módulo que implementa o método de balanceamento de carga [hash](https://pt.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-hash).                                                                                                                                                                                                                                        |
| `--without-http_upstream_ip_hash_module`    | Desabilita a construção do módulo que implementa o método de balanceamento de carga [ip_hash](https://pt.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-ip-hash).                                                                                                                                                                                                                                  |
| `--without-http_upstream_keepalive_module`  | Desabilita a construção do módulo que fornece [cache de conexão](https://pt.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-keepalive) para servidores upstream.                                                                                                                                                                                                                                    |
| `--without-http_upstream_least_conn_module` | Desabilita a construção do módulo que implementa o método de balanceamento de carga [least_conn](https://pt.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-least-conn).                                                                                                                                                                                                                            |
| `--without-http_upstream_random_module`     | Desabilita a construção do módulo que implementa o método de balanceamento de carga [random](https://pt.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-random).                                                                                                                                                                                                                                    |
| `--without-http_upstream_sticky_module`     | Desabilita a construção do módulo que implementa [persistência de sessão](https://pt.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-sticky), garantindo que todas as solicitações na sessão do cliente sejam passadas para<br/>o mesmo servidor no upstream.                                                                                                                                       |
| `--without-http_upstream_zone_module`       | Desabilita a construção do módulo que permite armazenar o estado de tempo de execução de um upstream<br/>em uma [zona de memória compartilhada](https://pt.angie.software//angie/docs/configuration/modules/http/http_upstream.md#u-zone).                                                                                                                                                                                   |
| `--without-http_userid_module`              | Desabilita a construção do módulo [UserID](https://pt.angie.software//angie/docs/configuration/modules/http/http_userid.md#http-userid) que<br/>define cookies adequados para identificação do cliente.                                                                                                                                                                                                                      |
| `--without-http_uwsgi_module`               | Desabilita a construção do módulo [uWSGI](https://pt.angie.software//angie/docs/configuration/modules/http/http_uwsgi.md#http-uwsgi) que<br/>passa solicitações para um servidor uWSGI.                                                                                                                                                                                                                                      |

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

#### Módulos Stream

Habilitando módulos adicionais:

#### \* - `--with-stream`, `--with-stream=dynamic`<br/>  - Habilita o módulo principal [Stream](https://pt.angie.software//angie/docs/configuration/modules/stream/index.md#stream-core)<br/>    para proxy TCP/UDP genérico e balanceamento de carga.

| `--with-stream_acme_module`                                        | Habilita a construção do módulo [ACME](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_acme.md#stream-acme),<br/>que habilita o protocolo ACME.                                                                                                                                                                                                                                                               |
|--------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--with-stream_geoip_module`, `--with-stream_geoip_module=dynamic` | Habilita o módulo [GeoIP](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_geoip.md#stream-geoip) que<br/>cria variáveis dependendo do endereço IP do cliente e dos<br/>bancos de dados pré-compilados [MaxMind](http://www.maxmind.com/).                                                                                                                                                                     |
| `--with-stream_mqtt_preread_module`                                | Habilita o módulo [MQTT Preread](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_mqtt_preread.md#stream-mqtt-preread) que permite<br/>extrair IDs de cliente e nomes de usuário de pacotes `CONNECT` nas versões MQTT<br/>[3.1.1](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718028)<br/>e [5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901033). |
| `--with-stream_rdp_preread_module`                                 | Habilita o módulo [RDP Preread](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_rdp_preread.md#stream-rdp-preread) que permite<br/>extrair cookies de sessões RDP.                                                                                                                                                                                                                                            |
| `--with-stream_realip_module`                                      | Habilita o módulo [RealIP](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_realip.md#stream-realip) que<br/>altera o endereço do cliente para o endereço enviado no cabeçalho do protocolo<br/>PROXY.                                                                                                                                                                                                         |
| `--with-stream_ssl_module`                                         | Habilita o suporte [SSL](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_ssl.md#stream-ssl) para o<br/>servidor Stream.<br/><br/>A biblioteca OpenSSL é **obrigatória** para construir e executar este módulo.                                                                                                                                                                                                |
| `--with-stream_ssl_preread_module`                                 | Habilita o módulo [SSL Preread](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_ssl_preread.md#stream-ssl-preread) que permite<br/>extrair informações de mensagens [ClientHello](https://datatracker.ietf.org/doc/html/rfc5246#section-7.4.1.2)<br/>sem terminar SSL/TLS.                                                                                                                                    |
| `--with-stream_upstream_probe_icmp` (PRO)                          | Habilita sondas de eco ICMP para a diretiva [upstream_probe (PRO)](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_upstream_probe.md#s-u-upstream-probe). Requer suporte ICMP do sistema operacional.                                                                                                                                                                                                         |

Desabilitando módulos padrão:

#### \* - `--without-stream_access_module`<br/>  - Desabilita o módulo [Access](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_access.md#stream-access)<br/>    que permite limitar o acesso a determinados endereços de cliente.

| `--without-stream_geo_module`                 | Desabilita o módulo [Geo](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_geo.md#stream-geo) que<br/>cria variáveis com valores dependendo do endereço IP do cliente.                                                           |
|-----------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--without-stream_limit_conn_module`          | Desabilita o módulo [Limit Conn](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_limit_conn.md#stream-limit-conn) que limita o<br/>número de conexões por chave, por exemplo, o número de conexões<br/>de um único endereço IP. |
| `--without-stream_map_module`                 | Desabilita o módulo [Map](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_map.md#stream-map) que<br/>cria variáveis com valores dependendo de valores de outras variáveis.                                                      |
| `--without-stream_return_module`              | Desabilita o módulo [Return](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_return.md#stream-return)<br/>que envia o valor especificado para o cliente e então fecha a<br/>conexão.                                            |
| `--without-stream_set_module`                 | Desabilita o módulo [Set](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_set.md#stream-set) que<br/>define um valor para uma variável.                                                                                         |
| `--without-stream_split_clients_module`       | Desabilita o módulo [Split Clients](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_split_clients.md#stream-split-clients) que cria<br/>variáveis para testes A/B.                                                              |
| `--without-stream_upstream_hash_module`       | Desabilita o módulo que implementa o método de balanceamento de carga [hash](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-hash).                                                                             |
| `--without-stream_upstream_least_conn_module` | Desabilita o módulo que implementa o método de balanceamento de carga [least_conn](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-least-conn).                                                                 |
| `--without-stream_upstream_random_module`     | Desabilita o módulo que implementa o método de balanceamento de carga [random](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-random).                                                                         |
| `--without-stream_upstream_zone_module`       | Desabilita o módulo que permite armazenar o estado de tempo de execução de um<br/>upstream em uma [zona de memória compartilhada](https://pt.angie.software//angie/docs/configuration/modules/stream/stream_upstream.md#s-u-zone).                        |

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

#### Mail

Habilitando módulos adicionais:

#### \* - `--with-mail`, `--with-mail=dynamic`<br/>  - Habilita o módulo principal [Mail](https://pt.angie.software//angie/docs/configuration/modules/mail/index.md#mail-core) que<br/>    suporta POP3, IMAP4 e SMTP.

| `--with-mail_ssl_module`   | Habilita o suporte [SSL](https://pt.angie.software//angie/docs/configuration/modules/mail/mail_ssl.md#mail-ssl) para<br/>o servidor Mail.<br/><br/>A biblioteca OpenSSL é **obrigatória** para construir e executar este módulo.   |
|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

Desabilitando módulos padrão:

#### \* - `--without-mail_imap_module`<br/>  - Desabilita o protocolo [IMAP](https://pt.angie.software//angie/docs/configuration/modules/mail/mail_imap.md#mail-imap) no<br/>    servidor Mail.

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

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

#### Outras opções

#### \* - `--with-cpp_test_module`<br/>  - Habilita o módulo CPP Test. É usado principalmente para desenvolvimento<br/>    e propósitos de teste e não é destinado para uso em produção.

| `--add-module=`path         | Habilita a construção de um módulo externo no caminho especificado.                                                                                                                                                                                                                                                                                                                                                    |
|-----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `--add-dynamic-module=`path | Habilita a construção de um módulo dinâmico externo no caminho especificado.                                                                                                                                                                                                                                                                                                                                           |
| `--with-compat`             | Habilita o modo de compatibilidade de módulo dinâmico. Quando habilitado, o Angie pode carregar e<br/>usar módulos dinâmicos que foram construídos para a mesma versão do Angie,<br/>mesmo se esses módulos foram construídos com opções diferentes. O Angie PRO pode<br/>carregar apenas módulos construídos para o Angie PRO; módulos do Angie (OSS) são rejeitados devido<br/>a uma assinatura de módulo diferente. |
| `--with-cc=`path            | Define o compilador a ser usado durante a construção.                                                                                                                                                                                                                                                                                                                                                                  |
| `--with-cpp=`path           | Define o pré-processador a ser usado durante a construção.                                                                                                                                                                                                                                                                                                                                                             |
| `--with-cc-opt=`parameters  | Define parâmetros adicionais que serão adicionados à variável `CFLAGS`.<br/>Ao usar a biblioteca PCRE do sistema no FreeBSD,<br/>`--with-cc-opt="-I /usr/local/include"` deve ser especificado. Se o<br/>número de arquivos suportados por `select()` precisa ser aumentado, também<br/>pode ser especificado aqui, como `--with-cc-opt="-D<br/>FD_SETSIZE=2048"`.                                                     |
| `--with-ld-opt=`parameters  | Define parâmetros adicionais que serão usados durante a vinculação. Ao usar<br/>a biblioteca PCRE do sistema no FreeBSD, `--with-ld-opt="-L<br/>/usr/local/lib"` deve ser especificado.                                                                                                                                                                                                                                |
| `--with-cpu-opt=`cpu        | Habilita construções otimizadas para um dos seguintes processadores:<br/>`pentium`, `pentiumpro`, `pentium3`, `pentium4`,<br/>`athlon`, `opteron`, `sparc32`, `sparc64`,<br/>`ppc64`.                                                                                                                                                                                                                                  |

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

### Exemplos

**Construção Simples com HTTPS Habilitado**. Esta configuração básica habilita o suporte HTTPS
usando SSL/TLS, com as dependências necessárias (PCRE para expressões regulares,
**zlib** para compressão e 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
```

**Construção Otimizada para Desempenho**. Esta configuração é otimizada para desempenho,
incluindo suporte HTTP/2, compressão estática **gzip**, JIT para PCRE e
I/O assíncrono; pools de threads também são habilitados para manuseio eficiente de altas
cargas:

```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 com Proxy TCP/UDP**. Esta configuração configura um
balanceador de carga para serviços HTTP e não-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
```

**Construção Especializada**. Esta configuração inclui HTTPS, HTTP/2, compressão,
segurança e desempenho aprimorados, juntamente com módulos adicionais para
compressão Brotli e gerenciamento de cache, otimizada tanto para proxy HTTP
quanto TCP/UDP:

```console
$ ./configure \
    --prefix=/usr/local/angie \                        # Diretório de instalação do Angie
    --sbin-path=/usr/sbin/angie \                      # Caminho para o binário do Angie
    --conf-path=/etc/angie/angie.conf \                # Caminho para o arquivo de configuração principal
    --pid-path=/run/angie.pid \                        # Caminho para o arquivo PID
    --lock-path=/var/lock/angie.lock \                 # Caminho para o arquivo de bloqueio
    --error-log-path=/var/log/angie/error.log \        # Caminho para o arquivo de log de erros
    --http-log-path=/var/log/angie/access.log \        # Caminho para o arquivo de log de acesso
    --with-http_ssl_module \                           # Habilita o módulo SSL para HTTPS
    --with-http_v2_module \                            # Habilita suporte HTTP/2 para melhor desempenho
    --with-http_realip_module \                        # Permite que o Angie trate corretamente os cabeçalhos X-Real-IP e X-Forwarded-For
    --with-http_gzip_static_module \                   # Serve arquivos .gz pré-comprimidos para reduzir carga da CPU
    --with-http_stub_status_module \                   # Fornece uma página de status
    --with-threads \                                   # Habilita pools de threads para melhorar desempenho sob carga pesada
    --with-file-aio \                                  # Habilita I/O assíncrono
    --with-stream \                                    # Habilita funcionalidade de proxy TCP/UDP
    --with-stream_ssl_module \                         # Adiciona suporte SSL/TLS para proxy TCP/UDP
    --with-pcre=../pcre2-10.40 \                       # Especifica o caminho para a biblioteca PCRE para suporte a regex
    --with-pcre-jit \                                  # Habilita compilação just-in-time para PCRE
    --with-zlib=../zlib-1.3 \                          # Especifica o caminho para a biblioteca zlib para compressão
    --with-openssl=../openssl-3.0.8 \                  # Especifica o caminho para a biblioteca OpenSSL para SSL/TLS
    --with-openssl-opt="enable-ec_nistp_64_gcc_128" \  # Otimiza OpenSSL para curvas NIST de 64 bits
    --add-module=../ngx_brotli \                       # Adiciona módulo de terceiros ngx_brotli para suporte à compressão Brotli
    --add-dynamic-module=../ngx_cache_purge            # Adiciona módulo de terceiros ngx_cache_purge para gerenciamento de cache
```
