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

Recomendamos instalar o Angie a partir dos pacotes oficiais pré-compilados. No entanto, se você ainda precisar de sua própria compilação:

  1. Baixe o arquivo .tar.gz do nosso site:

    $ curl -O https://download.angie.software/files/angie-1.10.2.tar.gz
    
  2. Descompacte o arquivo e navegue até o diretório do código-fonte:

    $ tar -xpf angie-1.10.2.tar.gz
    $ cd angie-1.10.2
    
  3. Para preparar a compilação, use o script ./configure para determinar 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 necessárias:

    $ ./configure <OPÇÕES>
    
  4. Quando o Makefile estiver pronto, compile e instale o Angie:

    $ make
    $ make install
    

Opções de Compilação#

Geral#

Opção

Descrição

Padrão

--help

Imprime uma mensagem de ajuda.

--user=nome

Define o nome de um usuário sem privilégios cujas credenciais serão usadas pelos processos worker. Após a instalação, o nome sempre pode ser alterado no arquivo de configuração angie.conf usando a diretiva user.

nobody

--group=nome

Define o nome de um grupo cujas credenciais serão usadas pelos processos worker. Após a instalação, o nome sempre pode ser alterado no arquivo de configuração angie.conf usando a diretiva user.

configuração --user

--build=nome

Define um nome opcional para a compilação.

--builddir=caminho

Define o diretório de compilação.

objs

--feature-cache=caminho

Especifica o diretório para cache de artefatos de compilação.

Se definido sem um caminho, a configuração --builddir é usada

Caminhos#

Opção

Descrição

Padrão

--prefix=caminho

Define o diretório que armazenará os arquivos do servidor. Este mesmo diretório também será usado para todos os caminhos relativos definidos por ./configure (exceto para caminhos para fontes de biblioteca) e no arquivo de configuração angie.conf.

/usr/local/angie

--sbin-path=caminho

Define o nome do executável do Angie. Este nome é usado apenas durante a instalação.

<prefix>/sbin/angie

--modules-path=caminho

Define o diretório onde os módulos dinâmicos serão instalados.

<prefix>/modules

--conf-path=caminho

Define o nome do arquivo de configuração angie.conf. Se necessário, você sempre pode iniciar o Angie com um arquivo de configuração diferente usando a opção de linha de comando -c.

<prefix>/conf/angie.conf

--error-log-path=caminho

Define o nome do arquivo de log principal de erro, aviso e diagnóstico. Após a instalação, o nome do arquivo sempre pode ser alterado no arquivo de configuração angie.conf usando a diretiva error_log.

<prefix>/logs/error.log

--pid-path=caminho

Define o nome do arquivo angie.pid que armazenará o ID do processo do processo principal. Após a instalação, o nome do arquivo sempre pode ser alterado no arquivo de configuração angie.conf usando a diretiva pid.

<prefix>/logs/angie.pid

--lock-path=caminho

Define o prefixo para nomes de arquivos de bloqueio. Após a instalação, o valor sempre pode ser alterado no arquivo de configuração angie.conf usando a diretiva lock_file.

<prefix>/logs/angie.lock

--http-acme-client-path=caminho

Define o diretório para armazenar certificados e chaves para blocos server que têm diretivas acme definidas.

<prefix>/acme_client

--http-log-path=caminho

Define o nome do arquivo de log de requisições principal para o servidor HTTP. Após a instalação, o nome do arquivo sempre pode ser alterado no arquivo de configuração angie.conf usando a diretiva access_log.

<prefix>/logs/access.log

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

Define o diretório para armazenar arquivos temporários que contêm corpos de requisições de clientes. Após a instalação, o diretório sempre pode ser alterado no arquivo de configuração angie.conf usando a diretiva client_body_temp_path.

<prefix>/client_body_temp

--http-proxy-temp-path=caminho

Define o diretório para armazenar arquivos temporários com dados recebidos de servidores proxy. Após a instalação, o diretório sempre pode ser alterado no arquivo de configuração angie.conf usando a diretiva proxy_temp_path.

<prefix>/proxy_temp

--http-fastcgi-temp-path=caminho

Define o diretório para armazenar arquivos temporários com dados recebidos de servidores FastCGI. Após a instalação, o diretório sempre pode ser alterado no arquivo de configuração angie.conf usando a diretiva fastcgi_temp_path.

<prefix>/fastcgi_temp

--http-uwsgi-temp-path=caminho

Define o diretório para armazenar arquivos temporários com dados recebidos de servidores uWSGI. Após a instalação, o diretório sempre pode ser alterado no arquivo de configuração angie.conf usando a diretiva uwsgi_temp_path.

<prefix>/uwsgi_temp

--http-scgi-temp-path=caminho

Define o diretório para armazenar arquivos temporários com dados recebidos de servidores SCGI. Após a instalação, o diretório sempre pode ser alterado no arquivo de configuração angie.conf usando a diretiva scgi_temp_path.

<prefix>/scgi_temp

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 o método select(). Este módulo é construído automaticamente se a plataforma não parecer suportar métodos mais apropriados como 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 o método poll(). Este módulo é construído automaticamente se a plataforma não parecer suportar métodos mais apropriados como kqueue, epoll, ou /dev/poll.

--with-threads

Habilita o uso de pools de threads.

--with-file-aio

Habilita o uso de I/O de arquivo assíncrono (AIO) no FreeBSD e Linux.

--with-debug

Habilita o log de depuração.

--without-http-cache

Desabilita o cache HTTP.

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

Habilita o uso da biblioteca PCRE.

O parâmetro opcional define o caminho para os fontes da biblioteca PCRE. A distribuição da biblioteca precisa ser baixada do site PCRE e extraída. O resto é feito pelos comandos ./configure e make do Angie.

A biblioteca é obrigatória para suporte a expressões regulares na diretiva location e para o módulo 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).

--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. 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.

--with-openssl-opt=parameters

Define parâmetros adicionais de construção para OpenSSL.

--with-ntls

Habilita suporte NTLS no módulo HTTP (lado servidor, lado cliente) e módulo stream (lado servidor, lado cliente) ao construir com uma biblioteca SSL que suporta NTLS.

--with-zlib=path

Define o caminho para os fontes da biblioteca zlib. A distribuição da biblioteca (versão 1.1.3 — 1.2.11) precisa ser baixada do site zlib e extraída. O resto é feito pelos comandos ./configure e make do Angie.

A biblioteca é obrigatória para o módulo 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, otimizado para um dos seguintes processadores: pentium, pentiumpro.

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 por padrão mas desabilitados.

HTTP#

Habilitando módulos adicionais:

--with-http_acme_module

Habilita a construção do módulo ACME, que habilita o protocolo ACME.

--with-http_addition_module

Habilita a construção do módulo Addition que permite adicionar texto antes e depois de uma resposta.

--with-http_auth_request_module

Habilita a construção do módulo Auth Request que fornece 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 destinado a automatizar tarefas de gerenciamento de arquivos no servidor via protocolo WebDAV.

--with-http_degradation_module

Habilita a construção do módulo Degradation que permite retornar códigos de status HTTP 204 ou 444 para certos blocos location.

Este módulo só pode ser usado em casos onde sbrk(0) mostra a quantidade real de memória alocada para o processo. Em outras palavras, o módulo funciona no FreeBSD até a versão 7.0 por padrão. A partir da versão 7.0, funciona apenas se MALLOC_OPTIONS=Dm estiver definido. No Linux não funciona.

--with-http_flv_module

Habilita a construção do módulo FLV que fornece suporte de pseudo-streaming do lado do servidor para arquivos Flash Video (FLV).

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

Habilita a construção do módulo GeoIP que cria variáveis cujos valores são determinados baseados no endereço IP do cliente e bancos de dados prontos da MaxMind.

--with-http_gunzip_module

Habilita a construção do módulo GunZIP que permite descomprimir respostas com Content-Encoding: gzip para clientes que não suportam o método de compressão gzip.

--with-http_gzip_static_module

Habilita a construção do módulo Gzip Static que permite servir um arquivo pré-comprimido com o mesmo nome e a extensão .gz em vez de um arquivo regular.

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

Habilita a construção do módulo Image Filter que permite transformar imagens nos formatos JPEG, GIF, PNG e WebP.

--with-http_mp4_module

Habilita a construção do módulo MP4 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.

--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 que atende requisições terminadas com uma barra (/) e retorna um arquivo aleatório como arquivo de índice do diretório.

--with-http_realip_module

Habilita a construção do módulo RealIP que permite alterar o 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.

--with-http_slice_module

Habilita a construção do módulo Slice que permite dividir uma requisição em subrequisições, cada uma retornando um intervalo específico da resposta. O módulo fornece cache eficiente de respostas grandes.

--with-http_ssl_module

Habilita suporte SSL para o servidor HTTP.

A biblioteca OpenSSL é obrigatória para este módulo.

--with-http_stub_status_module

Habilita a construção do módulo Stub Status que fornece acesso a informações básicas de status do servidor.

--with-http_sub_module

Habilita a construção do módulo Sub que permite modificar uma string especificada na resposta para outra.

--with-http_v2_module

Habilita o módulo HTTP/2.

--with-http_v3_module

Habilita o módulo HTTP/3.

Nota

Para construção, é fortemente recomendado usar uma biblioteca SSL que suporte o protocolo QUIC:

Construindo com BoringSSL:

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

Sem isso, a biblioteca OpenSSL será usada em modo de compatibilidade, onde o envio de early data 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 que permite transformar respostas XML usando folhas de estilo XSLT.

As bibliotecas libxml2 e libxslt são obrigatórias para este módulo.

--with-google_perftools_module

Habilita a construção do módulo Google PerfTools que fornece suporte para criação de perfil de processos worker do Angie usando Google Performance Tools. O módulo é destinado para desenvolvedores do Angie.

Desabilitando módulos padrão:

--without-http

Desabilita o servidor HTTP.

--without-http_access_module

Desabilita o módulo Access que permite limitar o acesso a determinados endereços de cliente.

--without-http_api_module

Desabilita o módulo API que fornece uma interface HTTP RESTful para acessar informações baseadas em JSON sobre a instância do servidor web.

--without-http_auth_basic_module

Desabilita o módulo Auth Basic que permite limitar o acesso a recursos validando o nome de usuário e senha usando o protocolo HTTP Basic Authentication.

--without-http_autoindex_module

Desabilita o módulo AutoIndex que processa solicitações terminadas com o caractere de barra (/) e produz uma listagem de diretório caso o módulo Index não consiga encontrar um arquivo de índice.

--without-http_browser_module

Desabilita o módulo Browser que cria variáveis cujos valores dependem do valor do campo de cabeçalho de solicitação User-Agent.

--without-http_charset_module

Desabilita o módulo Charset que adiciona o charset especificado ao campo de cabeçalho de resposta Content-Type e pode adicionalmente converter dados de um charset para outro.

--without-http_empty_gif_module

Desabilita o módulo que emite um GIF transparente de um único pixel.

--without-http_fastcgi_module

Desabilita o módulo FastCGI que passa solicitações para um servidor FastCGI.

--without-http_geo_module

Desabilita o módulo Geo que cria variáveis com valores dependendo do endereço IP do cliente.

--without-http_gzip_module

Desabilita o módulo que comprime as respostas do servidor HTTP.

A biblioteca zlib é obrigatória para compilar e executar este módulo.

--without-http_grpc_module

Desabilita o módulo gRPC que passa solicitações para um servidor gRPC.

--without-http_limit_conn_module

Desabilita o módulo Limit Conn que limita o número de conexões por chave, por exemplo, o número de conexões de um único endereço IP.

--without-http_limit_req_module

Desabilita o módulo Limit Req que limita a taxa de processamento de solicitações por chave, por exemplo, a taxa de processamento de solicitações vindas de um único endereço IP.

--without-http_map_module

Desabilita o módulo Map que cria variáveis com valores dependendo dos valores de outras variáveis.

--without-http_memcached_module

Desabilita o módulo Memcached que obtém respostas de um servidor memcached.

--without-http_mirror_module

Desabilita o módulo Mirror que implementa o espelhamento de uma solicitação original criando sub-solicitações de espelho em segundo plano.

--without-http_prometheus_module

Desabilita o módulo Prometheus do servidor HTTP.

--without-http_proxy_module

Desabilita o módulo Proxy do servidor HTTP.

--without-http_referer_module

Desabilita o módulo Referer que pode bloquear o acesso a um site para solicitações com valores inválidos no campo de cabeçalho Referer.

--without-http_rewrite_module

Desabilita o módulo Rewrite que permite ao servidor HTTP redirecionar solicitações e alterar seus URIs.

A biblioteca PCRE é obrigatória para compilar e executar este módulo.

--without-http_scgi_module

Desabilita o módulo SCGI que passa solicitações para um servidor SCGI.

--without-http_split_clients_module

Desabilita o módulo Split Clients que cria variáveis para testes A/B.

--without-http_ssi_module

Desabilita o módulo SSI que processa comandos SSI (Server Side Includes) em respostas que passam por ele.

--without-http_upstream_hash_module

Desabilita o módulo que implementa o método de balanceamento de carga hash.

--without-http_upstream_ip_hash_module

Desabilita o módulo que implementa o método de balanceamento de carga ip_hash.

--without-http_upstream_keepalive_module

Desabilita o módulo que fornece cache de conexão para servidores upstream.

--without-http_upstream_least_conn_module

Desabilita o módulo que implementa o método de balanceamento de carga least_conn.

--without-http_upstream_random_module

Desabilita o módulo que implementa o método de balanceamento de carga random.

--without-http_upstream_sticky_module

Desabilita o módulo que implementa persistência de sessão, garantindo que todas as solicitações na sessão do cliente sejam passadas para o mesmo servidor backend no upstream.

--without-http_upstream_zone_module

Desabilita o módulo que permite armazenar o estado de tempo de execução de um upstream em uma zona de memória compartilhada.

--without-http_userid_module

Desabilita o módulo UserID que define cookies adequados para identificação do cliente.

--without-http_uwsgi_module

Desabilita o módulo uWSGI que passa solicitações para um servidor uWSGI.

Streaming#

Habilitando módulos adicionais:

* - --with-stream, --with-stream=dynamic - Habilita o módulo principal Stream para proxy TCP/UDP genérico e balanceamento de carga.#

--with-stream_acme_module

Habilita a construção do módulo ACME, que habilita o protocolo ACME.

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

Habilita o módulo GeoIP que cria variáveis dependendo do endereço IP do cliente e dos bancos de dados pré-compilados MaxMind.

--with-stream_mqtt_preread_module

Habilita o módulo MQTT Preread que permite extrair IDs de cliente e nomes de usuário de pacotes CONNECT nas versões MQTT 3.1.1 e 5.0.

--with-stream_rdp_preread_module

Habilita o módulo RDP Preread que permite extrair cookies de sessões RDP.

--with-stream_realip_module

Habilita o módulo RealIP que altera o endereço do cliente para o endereço enviado no cabeçalho do protocolo PROXY.

--with-stream_ssl_module

Habilita o suporte SSL para o servidor de Streaming.

A biblioteca OpenSSL é obrigatória para construir e executar este módulo.

--with-stream_ssl_preread_module

Habilita o módulo SSL Preread que permite extrair informações de mensagens ClientHello sem terminar SSL/TLS.

Desabilitando módulos padrão:

* - --without-stream_access_module - Desabilita o módulo Access que permite limitar o acesso a determinados endereços de cliente.#

--without-stream_geo_module

Desabilita o módulo Geo que cria variáveis com valores dependendo do endereço IP do cliente.

--without-stream_limit_conn_module

Desabilita o módulo Limit Conn que limita o número de conexões por chave, por exemplo, o número de conexões de um único endereço IP.

--without-stream_map_module

Desabilita o módulo Map que cria variáveis com valores dependendo de valores de outras variáveis.

--without-stream_return_module

Desabilita o módulo Return que envia o valor especificado para o cliente e então fecha a conexão.

--without-stream_set_module

Desabilita o módulo Set que define um valor para uma variável.

--without-stream_split_clients_module

Desabilita o módulo Split Clients que cria 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.

--without-stream_upstream_least_conn_module

Desabilita o módulo que implementa o método de balanceamento de carga least_conn.

--without-stream_upstream_random_module

Desabilita o módulo que implementa o método de balanceamento de carga random.

--without-stream_upstream_zone_module

Desabilita o módulo que habilita armazenar o estado de tempo de execução de um upstream em uma zona de memória compartilhada.

Mail#

Habilitando módulos adicionais:

* - --with-mail, --with-mail=dynamic - Habilita o módulo principal Mail que suporta POP3, IMAP4 e SMTP.#

--with-mail_ssl_module

Habilita o suporte SSL para o servidor de Mail.

A biblioteca OpenSSL é obrigatória para construir e executar este módulo.

Desabilitando módulos padrão:

* - --without-mail_imap_module - Desabilita o protocolo IMAP no servidor de Mail.#

--without-mail_pop3_module

Desabilita o protocolo POP3 no servidor de Mail.

--without-mail_smtp_module

Desabilita o protocolo SMTP no servidor de Mail.

Outras opções#

* - --with-cpp_test_module - Habilita o módulo CPP Test. É usado principalmente para desenvolvimento 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 usar módulos dinâmicos que foram construídos para a mesma versão do Angie, mesmo se esses módulos foram construídos com opções diferentes.

--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. Ao usar a biblioteca PCRE do sistema no FreeBSD, --with-cc-opt="-I /usr/local/include" deve ser especificado. Se o número de arquivos suportados por select() precisa ser aumentado, também pode ser especificado aqui, como --with-cc-opt="-D FD_SETSIZE=2048".

--with-ld-opt=parameters

Define parâmetros adicionais que serão usados durante a vinculação. Ao usar a biblioteca PCRE do sistema no FreeBSD, --with-ld-opt="-L /usr/local/lib" deve ser especificado.

--with-cpu-opt=cpu

Habilita construções otimizadas para um dos seguintes processadores: pentium, pentiumpro, pentium3, pentium4, athlon, opteron, sparc32, sparc64, ppc64.

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):

$ ./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 Performance. Esta configuração é otimizada para performance, 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:

$ ./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:

$ ./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

Build Especializado. Esta configuração inclui HTTPS, HTTP/2, compressão, segurança e performance aprimoradas, juntamente com módulos adicionais para compressão Brotli e gerenciamento de cache, otimizado tanto para proxy HTTP quanto TCP/UDP:

$ ./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 lock
    --error-log-path=/var/log/angie/error.log \        # Caminho para o arquivo de log de erro
    --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 performance melhorada
    --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 performance 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