Existe uma maneira de usar a variável $ document_root no local error_log para o nginx?
Infelizmente, não. Se você colocou uma variável em uma diretiva e ela não foi interpolada, não há nada que você possa fazer sobre isso.
Existe uma página de Perguntas frequentes do Nginx sobre este tópico exato, que diz (abreviado):
Variables should not be used as template macros. Instead, a macro expansion and "include" directives should be used to generate configs more easily and it can be done with the external tools, e.g. sed + make or any other common template mechanism.
Ok, mas por que os documentos mostram especificamente as variáveis usadas na diretiva access_log
?
Você está correto ao mencionar que os documentos para access_log
contêm algum uso variável.
Comece a especulação: Algumas diretrizes são mais poderosas do que outras. De acordo com a documentação do Nginx, o primeiro argumento para access_log
pode ser um caminho , enquanto o primeiro argumento para error_log
pode ser um arquivo . Veja um trecho da página de documentos access_log :
server {
root /spool/vhost/data/$host;
access_log /spool/vhost/logs/$host;
...
Tanto root
quanto access_log
podem usar a variável $host
. Portanto, acredito que os argumentos descritos como caminho são capazes de fazer interpolação variável.