Sostituisci la configurazione http predefinita nginx senza modificare nginx.conf predefinito


14

La mia intenzione : vorrei sovrascrivere la configurazione predefinita definita in /etc/nginx/nginx.conf(in debian 8). L'idea è di mantenere questo file completamente intatto per facilitare futuri aggiornamenti del sistema ed essere in grado di ottenere le ultime modifiche per le opzioni che non ho ignorato.

Cosa ho fatto : ho creato una configurazione personalizzata /etc/nginx/conf.d/come ho fatto per molti altri servizi debian.

Problema : tuttavia, sembra impossibile sovrascrivere alcune configurazioni, perché ottengo una direttiva "X" è un errore duplicato . Nginx non sembra supportare l'override della configurazione allo stesso modo di altri servizi.

Domanda : esiste un modo per sovrascrivere e aggiungere una nuova opzione al contesto http di nginx senza ottenere la direttiva è un errore duplicato ? O dovrei abbandonare completamente l'idea e scatenarmi nginx.conf?

Molte grazie per il vostro aiuto.

Questa domanda simile non risolve davvero il mio problema, perché voglio anche trarre profitto dalle opzioni predefinite nginx impostato automaticamente per me (ad es. worker_processes auto;)


1
Hai davvero intenzione di usare Debian? La loro configurazione nginx è abbastanza diversa da quella a monte, e questo potrebbe non essere possibile.
Michael Hampton

Sì. Ho già diversi server di produzione in esecuzione su Debian e questo riguarda solo la modifica di apache2 in nginx. Quindi, quello che mi stai dicendo è che in altre distribuzioni, quello che ho provato potrebbe funzionare? C'è una possibilità che funzionerà in futuro con Debian?
Gui-Don,

È certamente possibile che Debian distribuirà una configurazione nginx più sensata in futuro. Potresti anche crearne uno tuo.
Michael Hampton

Risposte:


2

O dovrei abbandonare completamente l'idea e scatenare il nginx.conf?

Si, dovresti.

Le uniche modifiche mai apportate dai manutentori dei pacchetti sono

  • impostazioni predefinite più sensate per i parametri che dovresti aver impostato te stesso molto tempo fa
  • #esempi prefissati che non verrebbero comunque utilizzati senza la tua azione

In passato, gli unici cambiamenti significativi sono stati ssl_protocols, ssl_prefer_server_cipherse worker_processes. Avresti dovuto sovrascriverli comunque anni prima che inserirli nel pacchetto deb sembrasse una cosa ragionevole da fare per i manutentori del pacchetto.

In passato, l'unica vera mitigazione che avrebbe potuto essere fornita con un nginx.conf a livello di sistema, l'aggiunta max_ranges 1;per CVE-2017-7529 non è stata fornita da alcuna distribuzione che conosco, hanno rilasciato la correzione per la sua vulnerabilità prima che la maggior parte degli amministratori anche applicato la mitigazione.

Non ci si può aspettare che i manutentori dei pacchetti siano più veloci di quanto non si stiano aggiungendo modifiche potenzialmente pericolose, quindi probabilmente non trarrai profitto dall'ereditare la loro configurazione. I manutentori dei pacchetti non possono sapere quale sia la migliore per i milioni di casi d'uso disponibili e pertanto saranno estremamente conservatori nel modificare i valori qui.

Fintanto che il sistema di backup funziona correttamente, è probabilmente comunque una buona idea mantenere la configurazione in atto, in modo tale che apt ti chieda durante gli aggiornamenti interattivi come agire in caso di modifiche del manutentore al file di configurazione.


Come capisci quali modifiche sono state applicate tra le diverse versioni? Puoi confrontare tutte le versioni dei pacchetti disponibili (non verificate, scaricate in modo non sicuro) come questa:

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

La storia in effetti fornisce informazioni preziose in questo caso, quindi grazie per l'ottima risposta. Capisco il tuo punto di vista, considerando l'importanza di nginx in tutto il mondo, è altamente improbabile che si verifichino cambiamenti importanti nella vita dei miei server HTTP.
Gui-Don,

1
Non sono d'accordo con questo. Sebbene sia improbabile che si verifichino problemi a causa delle modifiche del manutentore, avere una configurazione separata contribuirà a ridurre i costi di manutenzione, nonché avere una struttura migliore e una migrazione più semplice su server diversi, qualora si verificasse la necessità.
xZero

@xZero Stai dicendo che copiare il file in un'altra posizione contribuirà a ridurre i costi di manutenzione? In tal caso, in che modo?
anx,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.