Inconsistency in ability to use variables in nginx config
Valentin V. Bartenev
vbart at nginx.com
Wed Nov 13 10:15:59 UTC 2013
On Wednesday 13 November 2013 10:25:44 miguel_hamster wrote:
> It seems like it's possible to use variables in some configuration
> directives but not in others. This works:
>
> root /usr/www/$sitename/httpdocs;
>
> works, while these:
>
> access_log /var/log/www/$sitename/access.log;
This should work too. See documentation: http://nginx.org/r/access_log
> proxy_cache $sitename;
>
> do not, instead generating errors when I try to restart nginx.
>
> Is there any documentation that explains where I can and cannot use a
> variable?
See official docs: http://nginx.org/en/docs/
It's usually explicitly stated if directive supports variables
> Or is there some syntax I should be using to indicate variable
> interpolation? It would be immensely helpful if they worked in all these
> contexts, because then we wouldn't have to repeat so much across different
> site configuration files, leading to the requirement for generating them
> with clunky scripts. As it is, the variables are of very limited utility.
Yes, it is. Variables in nginx are not supposed to replace template engines
or special configuration-generation tools.
See FAQ: http://nginx.org/en/docs/faq/variables_in_config.html
Also, some duplication in config isn't something horrible. Nginx configuration
is not a programming language, it utilizes another paradigm and trying to be
declarative.
wbr, Valentin V. Bartenev
More information about the nginx
mailing list