Вывод set
выглядит благоприятным для извлечения всех определенных функций. Он начинается с переменных, а затем показывает функции, поэтому:
set |awk '/^[^=()]*\(\)/ {functions=1} functions' > functions.sh
Это ищет первое не -присвоение (вхождение ()
перед первым =
), а затем говорит, что это нормально для печати. Вторая строфа awk использует действие печати по умолчанию, когда переменная functions
имеет значение true. Выходные данные сохраняются в functions.sh
, откуда их можно затем получить в другом месте.
В вашем блоке server
отсутствуют операторы ssl_certificate
и ssl_certificate_key
.
Вы можете переместить эти операторы за пределы любого блока server
, чтобы один и тот же сертификат использовался всеми блоками server
(, предполагая, что у вас есть только один сертификат ).
Nginx может немного смягчиться из-за ошибки «сертификат ssl _не определен». Я подозреваю, что если бы блоки server
были перевернуты, ошибка могла бы таинственным образом исчезнуть. Но для корректности вы должны определить сертификат для каждого блока server
, которому он нужен, или в области блока http
для всех серверов.