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.




Deixe um comentário