Назад | Перейти на главную страницу

Имеет ли значение пробел в файлах конфигурации nginx?

у меня есть nginx conf файл, который из-за использования переменных среды у меня есть эхо сценария оболочки, этот файл я называю nginx.conf.template, затем я помещаю полученный результат в фактический nginx.confсм. сценарий оболочки ниже:

#!/bin/sh
function subst() { eval echo -E "$2"; }
mapfile -c 1 -C subst < nginx.conf.template > nginx.conf

Единственная проблема, с которой я столкнулся, заключается в том, что он удаляет все пробелы для отступов, я полагаю, это вызовет проблему, но контейнер докеров, который я запускаю, nginx сервер в порядке. Имеет ли значение, что у меня нет углублений? Если это имеет значение, может ли эхо сохранить указанные пробелы?

Он не удаляет все ваши пробелы. Он сокращает каждый кусок пробела до одного пробела. Для большинства ваших nginx.conf это никому не повредит. Если у вас есть строки в кавычках с несколькими пробелами, они также будут изменены командой выше. Вы можете легко это проверить, grepдля котировок в шаблоне.

Вместо того, чтобы настраивать echo чтобы сохранить пробелы, может быть проще создать шаблон как Heredoc в сценарии.

Избавление от лишних пробелов может быть полезно для уменьшения объема памяти во встроенной среде, но если вы не сильно ограничены в ресурсах, поддержание форматирования от шаблона до фактической конфигурации сделает отладку намного более приятной.