Как указывает OP порядок log_format, это действительно очень важно, в случае пользовательских log_formats, если вы поместите в один и тот же каталог оба типа файлов, некоторые файлы с log_formats, некоторые файлы с блоками серверов, которые используют эти log_formats, результатом будет крайне неповторимая конфигурация.
На работе, когда мы впервые перенесли нашу созданную вручную ферму nginx в puppet, мы начали видеть, что некоторые установки nginx с нуля дают сбой при одинаковом оборудовании / настройке, после множества странных отладочных ситуаций, таких как наличие двух / etc / nginx / * (- r) с помощью md5match и одного и того же двоичного файла, дающего разные результаты (недопустимая ошибка log_format в одном и работающая в другом), мы с трудом узнали, что порядок действительно очень важен для некоторых директив, таких как log_format.
Мы исправили проблему, просто переместив генерацию серверных блоков из conf.d / * в другую папку, включенную после conf.d / *.