Ubicación raíz de referencia como variable en el bloque del servidor {}

11

En mi bloque nginx server {} tengo root definido con una ruta. ¿Cómo puedo hacer referencia más tarde a esta ruta?

Esto es lo que estoy tratando de lograr:

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

    ...

    include $root/*.ngaccess;
}

Desafortunadamente, el uso de $ root no funciona (porque no lo he definido). ¿Nginx proporciona una forma de acceder al valor raíz?

Skyler
fuente

Respuestas:

15

Tú quieres la document_rootvariable.

mgorven
fuente
Haciendo esto: root / var / www / foosite / public /; incluir $ document_root.ngaccess; Me sale el error "nginx: [emerg] open ()" /etc/nginx/$document_root/.ngaccess "falló (2: No existe tal archivo o directorio)". $ document_root parece que sería la solución, pero ¿he escrito algo mal? De acuerdo con esta publicación (y otras que encontré) forum.linode.com/viewtopic.php?t=7898 , las variables no se pueden usar en las declaraciones de inclusión. Lo cual, si es cierto, es desafortunado.
skyler
Eso implica que nginx solo está evaluando la includedirectiva al inicio, no para cada solicitud (lo cual tiene sentido), por lo que parece que desafortunadamente lo que desea lograr no es posible.
mgorven
1
Aquí también tuve un problema: "El valor de la ruta puede contener variables, excepto $ document_root y $ realpath_root". nginx.org/en/docs/http/…
editor