Como posso verificar se um módulo nginx está instalado via nginx config?

2

O que eu quero fazer é proteger contra segmentos de configuração com diretivas inválidas sendo executadas em um nginx que não tenha o módulo apropriado instalado. Algo como a diretiva IfModule no Apache ( link ). Existe algo semelhante no nginx?

    
por dkuebric 04.06.2013 / 20:08

2 respostas

1

O <IfModule> do Apache aplica um conjunto de diretivas se o módulo específico for carregado.

Como o Nginx não suporta carregamento dinâmico de módulos, esse recurso não está disponível.

Fonte: link

    
por 05.02.2014 / 06:20
0

A disponibilidade de um recurso não pode ser determinada a partir do arquivo de configuração, tanto quanto eu posso dizer.

Se alguém deseja testar se uma alteração na configuração funcionaria sob as configurações atuais, pode-se usar o comando configtest: nginx -t (ou /etc/init.d/nginx configtest ) antes que as alterações sejam ativadas. Não é ideal.

O nginx suporta o carregamento de módulos dinâmicos desde a versão 1.9.11 ( anúncio de fevereiro de 2016 ). Ainda assim, não é possível fornecer configurações alternativas com base na presença ou ausência de módulos.

Não se deve combinar a capacidade de carregar módulos dinamicamente ou estaticamente, com a capacidade de testar se os módulos em questão estão habilitados, usando diretivas em um arquivo de configuração. Independentemente da maneira como um módulo é adicionado ao binário, ser capaz de testar se os recursos modulares estão disponíveis seria um recurso razoável para o suporte. Esse recurso ainda não está lá, com a exceção talvez de alguns módulos que têm efeitos colaterais perceptíveis na configuração (adicionar um cabeçalho de resposta personalizado, por exemplo, seria visível para uma etapa posterior no processamento da solicitação).

Se "cola de script" for uma opção na implantação para testar recursos, na linha de comando, pode-se fazer: nginx -V para ver a lista de módulos conhecidos no momento da compilação. A saída terá um mix de --with-* e --add-dynamic-module flags.

  • --with-http_v2_module indica um módulo (isto é, http_v2_module neste caso) compilado estaticamente no binário;
  • --add-dynamic-module=/path/to/module_name indica um módulo dinâmico. pode ser desabilitado sem recompilar o nginx, usando a diretiva load_module module_name.so core.
por 30.01.2017 / 22:01