Faça referência à localização raiz como uma variável no bloco do servidor {}

11

No bloco do meu servidor nginx {}, tenho raiz definida com um caminho. Como posso referenciar posteriormente esse caminho?

Isto é o que estou tentando realizar:

server {
    listen 80;
    root /var/www/foosite;

    ...

    include $root/*.ngaccess;
}

Infelizmente, usar $ root não funciona (porque ainda não o defini). O Nginx fornece uma maneira de acessar o valor raiz?

Skyler
fonte

Respostas:

15

Você quer a document_rootvariável

mgorven
fonte
Fazendo isso: root / var / www / foosite / public /; inclua $ document_root.ngaccess; Eu recebo o erro "nginx: [emerg] open ()" /etc/nginx/$document_root/.ngaccess "falhou (2: Esse arquivo ou diretório não existe)". $ document_root parece que seria a solução, mas eu digitei algo errado? De acordo com este post (e outros que eu me deparei) forum.linode.com/viewtopic.php?t=7898 , as variáveis ​​não podem ser usadas nas instruções de inclusão. O que, se for verdade, é lamentável.
Skyler
Isso implica que o nginx está avaliando apenas a includediretiva na inicialização, não para todas as solicitações (o que faz sentido); portanto, parece que o que você deseja obter não é possível, infelizmente.
mgorven 14/05
1
Também encontrei um problema aqui: "O valor do caminho pode conter variáveis, exceto $ document_root e $ realpath_root." nginx.org/en/docs/http/…
editor