Мне нужно иметь возможность управлять тысячами доменов в nginx, и каждый домен будет иметь сертификат Let's-encrypt, которым я буду управлять.
Я читал, как у apache есть функция макроса это позволяет вам делать что-то вроде того, где вам не нужно повторять один и тот же раздел виртуального хоста для каждого домена.
Если вам нужно управлять тысячами доменов, это может пригодиться.
Есть ли у nginx что-то подобное, что может помочь в этом плане?
<Macro VHost $domain>
<VirtualHost *:443>
ProxyProtocol On
ServerName $domain
SSLEngine on
SSLCertificateFile $domain.crt
SSLCertificateKeyFile $domain.key
SSLCertificateChainFile lets-encrypt-cross-signed.pem
</VirtualHost>
С Nginx вы должны сделать это заранее, используя внешние инструменты, такие как nginx-confgen
для создания статического конфига. Причина отказа от использования переменных в конфигурации объясняется в Nginx FAQ:
Переменные не должны использоваться как макросы шаблона. Переменные оцениваются во время выполнения во время обработки каждого запроса, поэтому они довольно дороги по сравнению с простой статической конфигурацией. Использование переменных для хранения статических строк также является плохой идеей. Вместо этого следует использовать расширение макроса и директивы include для более простой генерации конфигураций, и это можно сделать с помощью внешних инструментов, например sed + make или любой другой распространенный механизм шаблонов.