27 votes

Remplacez la configuration http par défaut de nginx sans modifier le fichier nginx.conf par défaut.

Mon intention : Je voudrais remplacer la configuration par défaut définie dans /etc/nginx/nginx.conf (sous debian 8). L'idée est de laisser ce fichier complètement intact pour faciliter les futures mises à jour du système et pouvoir obtenir les derniers changements pour les options que je n'ai pas remplacées.

Ce que j'ai fait : J'ai créé une configuration personnalisée dans le /etc/nginx/conf.d/ de la même manière que je l'ai fait pour plusieurs autres services debian.

Problème : Cependant, il semble impossible de remplacer certaines configurations, car j'obtiens une erreur de "Directive X est en double". Nginx ne semble pas supporter le remplacement de configuration de la même manière que le font d'autres services.

Question : Y a-t-il un moyen de remplacer et d'ajouter de nouvelles options dans le contexte http de nginx sans obtenir l'erreur Directive en double? Ou devrais-je abandonner complètement l'idée et modifier le nginx.conf?

Merci beaucoup pour votre aide.

_Cette question similaire ne résout pas vraiment mon problème, car je souhaite également profiter des options par défaut que nginx configure automatiquement pour moi (par exemple worker_processes auto;)_

7voto

anx Points 5996

Ou devrais-je abandonner complètement l'idée et saccager le nginx.conf?

Oui, vous devriez le faire.

Les seuls changements jamais apportés par les mainteneurs de paquets sont soit

  • des paramètres par défaut plus sensés pour lesquels vous auriez dû configurer vous-même il y a très longtemps de toute façon
  • des exemples préfixés par # qui ne seraient de toute façon pas utilisés sans votre action

Par le passé, les seuls changements significatifs étaient ssl_protocols, ssl_prefer_server_ciphers et worker_processes. Vous auriez dû les écraser de toute façon des années avant de les définir dans le paquet deb semblait être une chose raisonnable à faire pour les mainteneurs de paquets.

Par le passé, la seule véritable atténuation qui aurait pu être incluse avec un nginx.conf au niveau du système, en ajoutant max_ranges 1; pour CVE-2017-7529 n'était pas incluse dans aucune distribution que je connais, ils ont publié la correction de la vulnérabilité avant que la plupart des administrateurs n'aient même appliqué l'atténuation.

Vous ne pouvez pas vous attendre à ce que les mainteneurs de paquets soient plus rapides que vous pour ajouter des modifications potentiellement perturbatrices, donc vous ne profiterez probablement pas de l'héritage de leur configuration. Les mainteneurs de paquets ne peuvent pas savoir ce qui est le mieux pour les millions de cas d'utilisation existants et seront donc extrêmement conservateurs dans le changement de valeurs ici.

Tant que votre système de sauvegarde fonctionne correctement, il est probablement toujours une bonne idée de conserver la configuration en place, afin que apt vous demande lors des mises à jour interactives comment agir sur les modifications apportées par les mainteneurs au fichier de configuration.


Comment pouvez-vous déterminer quels changements ont été apportés entre différentes versions? Vous pouvez comparer toutes les versions de paquets disponibles (non vérifiées, téléchargées de manière non sécurisée) de cette manière:

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X