Nginx: compilar um módulo externo

Neste tutorial, explicarei como compilar um módulo externo para Nginx para adicionar funcionalidades adicionais ao servidor web.

Para ilustrar este tutorial, tomarei como exemplo o módulo http-headers-more-filter que permite modificar os cabeçalhos (ouvintes) enviados por solicitações HTTP.

Antes de começar, certifique-se de ter o compilador instalado:

sudo apt install gcc

O primeiro passo é verificar se o módulo está presente, digite o comando abaixo para verificar.

nginx -V 2>&1 | grep --color 'http-headers-more-filter'

Se o comando não retornar nada, o módulo não está presente.

Para compilar o módulo, precisaremos dos fontes Nginx, recupere a versão instalada usando o comando:

nginx -V

Como pode ser visto na imagem abaixo, o Nginx 1.21.0 está instalado.

Baixe os fontes da versão Nginx instalada, no exemplo usarei o seguinte comando:

wget https://nginx.org/download/nginx-1.21.0.tar.gz

Descompacte o arquivo usando o comando tar:

tar -xzvf nginx-1.21.0.tar.gz

Usando o comando ll, podemos ver que o arquivo está descompactado.

Agora você deve baixar as fontes do módulo. as fontes do módulo ouvintes-mais estão disponíveis aqui: openresty/headers-more-nginx-module: Set, add, and clear arbitrary output headers in NGINX http servers (github.com) .

Clonamos o repositório usando o comando git:

git clone https://github.com/openresty/headers-more-nginx-module.git

Em seguida, liste para verificar se o repositório está clonado.

Dependendo dos módulos que você deseja, podem ser necessárias dependências, aqui você precisa instalar os seguintes pacotes:

  • libpcre3-dev
  • zlib1g
sudo apt install libpcre3-dev zlib1g

Vá para a pasta que contém as fontes do Nginx:

cd nginx-1.21.0

Agora vamos configurar a compilação do módulo utilizando o comando abaixo:

./configure --add-dynamic-module=../headers-more-nginx-module

Adapte o caminho do parâmetro –add-dynamic-module= que você deseja compilar.

Depois que a compilação estiver configurada, compile-a com o comando:

make modules

O módulo é compilado, o arquivo .so do módulo está localizado na pasta objs da pasta de origem Nginx.

Agora você deve mover o arquivo .so para a pasta /etc/nginx/modules. Depois que o arquivo for movido, você deve informar ao Nginx para carregar o módulo.

Abra o arquivo nginx.conf e adicione a instrução load_module.

load_module modules/ngx_http_header_more_filter_modules.so

Então reinicie o Nginx

sudo systemctl restart nginx

Agora você sabe compilar um módulo externo para Nginx.

Romain Drouche

Romain Drouche

Especialista em infraestruturas de TI com mais de 15 anos de experiência na área. Atualmente, como Gestor de Projetos de Sistemas e Redes e especialista em Segurança de Sistemas de Informação (SSI), utilizo a minha expertise para garantir a fiabilidade e a segurança dos ambientes tecnológicos.

GHinM▶