Re: FR: дамп действующего конфига
Maxim Dounin
mdounin на mdounin.ru
Пн Мар 22 14:28:01 UTC 2021
Hello!
On Sun, Mar 21, 2021 at 05:44:34PM -0400, edo1 wrote:
> несколько раз возникала потребность посмотреть конфиг, с которым работает
> nginx.
>
> подобные запросы находил на SO, так что актуально не только для меня, в
> одном из вариантов ответа даже gdb приспособили:
> https://serverfault.com/questions/361421/dump-nginx-config-from-running-process
>
> возможно ли сделать что-то вроде `nginx -T`, только выводящее конфиг с
> которым сейчас работает nginx? как вариант, при запуске записывать
> актуальный конфиг куда-нибудь в /run и обновлять после `nginx -s reload`
Сейчас конфиг в исходном виде сохраняется в памяти, если nginx
собран с --with-debug. Достать его при необходимости можно с
помощью gdb и/или прямым поиском в памяти процесса.
В общем случае исходный конфиг не сохраняется, и посмотреть его,
соответственно, никак нельзя. В первую очередь потому, что конфиг
может быть очень большим, особенно при использовании блоков map{}
и geo{}, и хранение его "на всякий случай" - сомнительная трата
ресурсов.
Какого-либо хорошего решения я тут не вижу. Разве что хранить
конфиг до какого-то разумного размера, а дальше переставать.
Что до решения "записывать актуальный конфиг куда-нибудь в /run",
то это, скорее, внешняя по отношению к nginx'у задача, решаемая
скриптами запуска. Но закончится, думаю, как обычно: кто-то этот
актуальный конфиг удалит или перепишет, и снова возникнет
потребность посмотреть конфиг, с которым работает nginx.
Вообще, судя по вопросу на serverfault, основная решаемая задача -
"конфиг случайно промотался". Для её решения не нужен конфиг, с
которым работает nginx, для её решения нужно не забывать
бэкапиться. В случае конфигов - хорошо помогает хранение их хотя
бы в локальном репозитории и коммиты после любых значимых
изменений.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru