Мое намерение: Я хотел бы переопределить конфигурацию по умолчанию, определенную в /etc/nginx/nginx.conf
(в Debian 8). Идея состоит в том, чтобы сохранить этот файл полностью нетронутым, чтобы упростить будущие обновления системы и иметь возможность получать последние изменения для параметров, которые я не отменял.
Что я сделал: Я создал настраиваемую конфигурацию в /etc/nginx/conf.d/
так же, как я сделал для нескольких других служб debian.
Проблема: Однако кажется невозможным изменить некоторую конфигурацию, потому что я получаю Директива "X" дублируется ошибка. Nginx, похоже, не поддерживает переопределение конфигурации, как это делают другие службы.
Вопрос: Есть ли способ переопределить и добавить новую опцию в nginx http контекст, не понимая директива дублируется ошибка? Или мне следует полностью отказаться от этой идеи и взбесить nginx.conf
?
Большое спасибо за вашу помощь.
Этот похожий вопрос на самом деле не решает мою проблему, потому что я также хочу получить прибыль от параметров по умолчанию, которые nginx автоматически устанавливает для меня (например, worker_processes auto;
)
Или мне следует полностью отказаться от этой идеи и взбесить nginx.conf?
Да, ты должен.
Единственные изменения, которые когда-либо вносятся сопровождающими пакетов:
#
- примеры с префиксом, которые в любом случае не будут использоваться без вашего действияВ прошлом единственными значительными изменениями были ssl_protocols
, ssl_prefer_server_ciphers
и worker_processes
. В любом случае вы должны были переопределить их за годы, прежде чем устанавливать их в пакете deb, казалось разумным решением для сопровождающих пакетов.
В прошлом единственное реальное средство защиты, которое могло поставляться с общесистемным nginx.conf, добавляя max_ranges 1;
для CVE-2017-7529 не поставлялся ни одним из известных мне дистрибутивов, они выпустили исправление уязвимости еще до того, как большинство администраторов даже применили ее.
Вы не можете ожидать, что сопровождающие пакетов будут быстрее, чем вы, в добавлении потенциально критических изменений, поэтому вы, вероятно, не получите выгоды от наследования их конфигурации. Сопровождающие пакетов не могут знать, что лучше всего подходит для миллионов вариантов использования, и поэтому будут крайне консервативны при изменении значений здесь.
Пока ваша система резервного копирования работает должным образом, вероятно, будет хорошей идеей оставить конфигурацию на месте, так что apt будет спрашивать вас во время интерактивных обновлений, как действовать в случае изменений, внесенных сопровождающим в файл конфигурации.
Как узнать, какие изменения были внесены в разные версии? Вы можете сравнить все (непроверенные, небезопасно загруженные) доступные версии пакетов следующим образом:
(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)