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?

Respuestas:


15

Tú quieres la document_rootvariable.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.