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

Есть ли в nginx что-то вроде mod_macro apache?

Мне нужно иметь возможность управлять тысячами доменов в 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 или любой другой распространенный механизм шаблонов.