J'essaie d'optimiser mes configurations nginx afin qu'il soit possible de définir une variable et que tous les chemins d'emplacement se mettent à jour automatiquement. J'ai quatre lignes en question:
server_name php.domain.com;
root /srv/web/vhosts/php/web;
error_log /srv/web/vhosts/php/logs/error.log;
access_log /srv/web/vhosts/php/logs/access.log;
Ce que je voudrais réaliser est de définir une variable (dans ce cas, "php") et de l'inclure dans la configuration.
set $variable "php";
server_name $variable.domain.com;
root /srv/web/vhosts/$variable/web;
error_log /srv/web/vhosts/$variable/logs/error.log;
access_log /srv/web/vhosts/$variable/logs/access.log;
Cependant, il semblerait que nginx ignore les variables de cette configuration. Est-ce que je fais quelque chose de mal ou il n'est pas possible d'utiliser une variable dans les chemins d'emplacement?
access_log
/error_log
travaille avec des variables, mais avec quelques limitations.server_name
ne peut pas contenir de variables.$hostname
. Mise à jour de la réponse pour clarifier ce comportement.$hostname
est la seule variable autorisée. github.com/nginx/nginx/blob/… En fait, c'est plutôt une constante magique, pas une vraie variable