Переопределить стандартную конфигурацию nginx http без изменения по умолчанию nginx.conf

14

Мое намерение : я хотел бы переопределить конфигурацию по умолчанию, определенную в /etc/nginx/nginx.conf(в Debian 8). Идея состоит в том, чтобы сохранить этот файл полностью нетронутым, чтобы упростить будущие обновления системы и иметь возможность получать последние изменения для параметров, которые я не переопределял.

Что я сделал : я создал собственную конфигурацию так /etc/nginx/conf.d/же, как и для нескольких других сервисов Debian.

Проблема : Тем не менее, кажется невозможным переопределить некоторую конфигурацию, потому что я получаю директиву «X», дублирующую ошибку. Nginx, похоже, не поддерживает переопределение конфигурации так же, как другие сервисы.

Вопрос : есть ли способ переопределить и добавить новую опцию в http- контекст nginx, не получая директиву, дублирующую ошибку? Или я должен полностью отказаться от идеи и неистовствовать nginx.conf?

Большое спасибо за вашу помощь.

Этот похожий вопрос на самом деле не решает мою проблему, потому что я также хочу получить прибыль от опций по умолчанию, которые nginx установил для меня автоматически (например worker_processes auto;)

Гун-Дон
источник
1
Вы действительно настроены на использование Debian? Их конфигурация nginx сильно отличается от исходной, и это может быть невозможно.
Майкл Хэмптон
Да. У меня уже есть несколько производственных серверов, работающих на Debian, и речь идет об изменении только apache2 на nginx. Итак, что вы говорите мне, что в другом дистрибутиве, что я пробовал, может работать? Есть ли шанс, что это будет работать в будущем с Debian?
-Дон
Это, конечно , возможно , что Debian будет поставляться более разумной конфигурации Nginx в будущем. Вы также можете просто создать свой собственный.
Майкл Хэмптон

Ответы:

2

Или я должен полностью отказаться от идеи и неистовствовать в 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)
апх
источник
История действительно приносит ценную информацию в этом случае, так что спасибо за этот очень хороший ответ. Я понимаю вашу точку зрения, учитывая важность nginx во всем мире, поэтому маловероятно, что во время жизни моих HTTP-серверов произойдут важные критические изменения.
Ги-Дон
1
Я не согласен с этим. Хотя маловероятно, что проблемы возникнут из-за изменений сопровождающего, наличие отдельной конфигурации поможет снизить затраты на обслуживание, а также улучшит структуру и упростит миграцию на другой сервер, если потребуется.
xZero
1
@xZero Вы говорите, что копирование файла в другое место поможет сократить расходы на обслуживание? Если так, то как?
апй