chemin relatif nginx à inclure

10

Dans un fichier de conf nginx, existe-t-il un moyen de spécifier le includeà un autre fichier de conf par rapport au fichier de conf actuel?

Je voudrais écrire:

server {
  listen       80;
  server_name  localhost;

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

...
} 
Alex Rothberg
la source
2
Nan. Tous les chemins sont absolus ou relatifs au chemin de préfixe nginx.org/en/docs/configure.html
Alexey Ten
1
Deviner la disposition de vos fichiers et dossiers include apis/basic.conf;fonctionnerait probablement. Par exemple, cette inclusion est relative à la racine de configuration, elle inclut donc ce fichier .
AD7six

Réponses:

4

Les documents Nginx pour la includedirective ne documentent pas comment les chemins relatifs sont traités (à partir de la version 1.9.15). Ma lecture du code C est que le chemin doit être absolu ou relatif au chemin du préfixe, comme l'a proposé Alexey Ten dans un commentaire.

Voici un lien connexe vers le code source .

Mark Stosberg
la source
1
Je viens de tester sur nginx 1.10.3. Réglage de la -pà .et avons essayé , y compris à ./nginx.confpartir d' un fichier de configuration stocké dans /tmp. Il commet une erreur en me disant qu'il ne peut pas trouver /tmp/./nginx.conf. Soit l' -poption ne le fait pas, soit l'inclusion inclut uniquement par rapport au fichier de configuration, soit mon nginx est cassé.
CMCDragonkai
L' -poption affecte uniquement où la nginxcommande recherche le fichier de configuration. L'utilisation nginx -p . -c ./nginx.conffera rechercher la commande nginx ./nginx.conf, sinon sans elle, elle recherchera le chemin du préfixe pour le ./nginx.conf.
CMCDragonkai
2

Semblable à ce qu'Alexy Ten a commenté ci-dessus, le préfixe par défaut sera utilisé. Mais selon ce post StackOverflow: https://stackoverflow.com/a/25486871/1684819, l'option -p peut être fournie pour déclarer où tous les chemins relatifs seront référencés au lieu du chemin compilé par défaut.

xobes
la source