ruta relativa nginx para incluir

10

En un archivo nginx conf, ¿hay alguna forma de especificar el includearchivo conf a otro en relación con el archivo conf actual?

Me gustaria escribir:

server {
  listen       80;
  server_name  localhost;

  include "../apis/basic.conf";

...
} 
Alex Rothberg
fuente
2
No Todas las rutas son absolutas o relativas a la ruta del prefijo nginx.org/en/docs/configure.html
Alexey Ten
1
Adivinar el diseño de su archivo y carpeta, include apis/basic.conf;probablemente solo funcionaría. Por ejemplo, esta inclusión es relativa a la raíz de configuración, por lo que incluye este archivo .
AD7six

Respuestas:

4

Los documentos de Nginx para la includedirectiva no documentan cómo se manejan las rutas relativas (a partir de la versión 1.9.15). Mi lectura del código C es que la ruta debe ser absoluta o relativa a la ruta del prefijo, como Alexey Ten ofreció en un comentario.

Aquí hay un enlace relacionado con el código fuente .

Mark Stosberg
fuente
1
Acabo de probar en nginx 1.10.3. Ajuste de la -pa .y trató incluyendo ./nginx.confdesde un archivo de configuración almacenado en /tmp. Se equivoca al decirme que no puede encontrar /tmp/./nginx.conf. O la -popción no lo hace, o la inclusión solo incluye en relación con el archivo de configuración, o mi nginx está roto.
CMCDragonkai
La -popción solo afecta a dónde el nginxcomando busca el archivo de configuración. Usando nginx -p . -c ./nginx.confhará mirada de comandos para nginx ./nginx.conf, de lo contrario sin ella, será buscar el prefijo de ruta para el ./nginx.conf.
CMCDragonkai
2

Similar a lo que Alexy Ten comentó anteriormente, se usará el prefijo predeterminado. Pero de acuerdo con esta publicación de StackOverflow: https://stackoverflow.com/a/25486871/1684819 , se puede proporcionar la opción -p para declarar dónde se hará referencia a todas las rutas relativas en lugar de la ruta compilada predeterminada.

xobes
fuente