Substituir a configuração http nginx padrão sem alterar o nginx.conf padrão

14

Minha intenção : Gostaria de substituir a configuração padrão definida em /etc/nginx/nginx.conf(no debian 8). A idéia é manter esse arquivo completamente intocado para facilitar futuras atualizações do sistema e poder obter as alterações mais recentes para as opções que não substitui.

O que fiz : criei uma configuração personalizada /etc/nginx/conf.d/da mesma maneira que fiz para vários outros serviços debian.

Problema : No entanto, parece impossível substituir algumas configurações, porque recebo uma diretiva "X" com erro duplicado . O Nginx parece não suportar a substituição da configuração da mesma forma que outros serviços.

Pergunta : Existe uma maneira de substituir e adicionar nova opção ao contexto http nginx sem obter a diretiva com erro duplicado ? Ou devo abandonar completamente a idéia e estragar a nginx.conf?

Muito obrigado pela sua ajuda.

Essa pergunta semelhante realmente não resolve meu problema, porque também quero lucrar com as opções padrão definidas pelo nginx automaticamente para mim (por exemplo worker_processes auto;)

Gui-Don
fonte
1
Você realmente está usando o Debian? A configuração do nginx é bem diferente da upstream, e isso pode não ser possível.
Michael Hampton
Sim. Eu tenho vários servidores de produção já em execução no Debian e isso significa mudar o apache2 para o nginx. Então, o que você está me dizendo é que, em outra distribuição, o que eu tentei pode estar funcionando? Existe uma chance de que ele funcione no futuro com o Debian?
Gui-Don
Certamente é possível que o Debian envie uma configuração nginx mais sensata no futuro. Você também pode criar o seu próprio.
Michael Hampton

Respostas:

2

Ou devo abandonar completamente a idéia e agitar o nginx.conf?

Sim você deveria.

As únicas alterações feitas pelos mantenedores de pacotes são:

  • padrões mais sensatos para os parâmetros, você deve ter se configurado há muito tempo atrás de qualquer maneira
  • #exemplos pré-fixados que não seriam usados ​​sem sua ação de qualquer maneira

No passado, as únicas mudanças significativas foram ssl_protocols, ssl_prefer_server_cipherse worker_processes. Você deveria ter substituído esses de qualquer maneira anos antes de configurá-los no pacote deb parecia uma coisa razoável a ser feita pelos mantenedores de pacotes.

No passado, a única mitigação real que poderia ser enviada com o nginx.conf de todo o sistema, adicionando max_ranges 1;para o CVE-2017-7529, não foi enviada por nenhuma distribuição que eu conheço, eles lançaram a correção para a vulnerabilidade antes que a maioria dos administradores aplicada a mitigação.

Você não pode esperar que os mantenedores de pacotes sejam mais rápidos do que na adição de alterações potencialmente quebradas, portanto, provavelmente não lucrará em herdar suas configurações. Os mantenedores de pacotes não sabem o que é melhor para os milhões de casos de uso existentes e, portanto, serão extremamente conservadores ao alterar os valores aqui.

Enquanto o seu sistema de backup funcionar corretamente, provavelmente ainda é uma boa idéia manter a configuração no local, para que o apt pergunte durante as atualizações interativas como agir sobre as alterações do mantenedor no arquivo de configuração.


Como você descobre quais alterações foram aplicadas entre diferentes versões? Você pode comparar todas as versões de pacotes disponíveis (não verificadas, baixadas de forma insegura) disponíveis como esta:

(cd "$(mktemp -d)"; rmadison --url=debian nginx-common | awk '{print $3}' | while read a; do curl "http://ftp.debian.org/debian/pool/main/n/nginx/nginx-common_${a}_all.deb" | dpkg -x - x${a}; done; for a in x*/etc/nginx/nginx.conf; do [ -z "$la" ] && la="$a" && continue; diff -wus "$la" "$a";la="$a" ; done; pwd)
ansioso
fonte
De fato, a história traz informações valiosas nesse caso, então obrigado por essa resposta muito boa. Entendo o seu ponto de vista, considerando a importância do nginx em todo o mundo, é altamente improvável que ocorra uma alteração importante durante a vida dos meus servidores HTTP.
Gui-Don #
1
Eu discordo disso. Embora seja improvável que ocorram problemas devido a alterações do mantenedor, ter configurações separadas ajudará a reduzir os custos de manutenção, além de ter uma melhor estrutura e uma migração mais fácil para um servidor diferente, caso isso ocorra.
XZero 9/04
@xZero Você está dizendo que copiar o arquivo para outro local ajudará a reduzir os custos de manutenção? Se sim, como?
ANX