set variables within config
mdounin at mdounin.ru
Thu May 14 23:32:48 MSD 2009
On Thu, May 14, 2009 at 10:59:26AM -0600, Jon Garvin wrote:
> I haven't seen any way to do this in the docs, so this might be more of
> a feature request, but if someone knows of a way to accomplish this that
> I missed, let me know.
> I'd really like to be able to set a variable in the config and then use
> it to set other settings, with the ultimate goal of DRYing up the config
> file. For instance, right now I've got many different 'server' blocks,
> each with a few lines that look like...
> root /var/www/domain1/current/public;
> access_log /var/www/domain1/shared/log/nginx.access.log;
> error_log /var/www/domain1/shared/log/nginx.error.log;
> Lots of repetition there. Would be great if instead I could say...
> $basepath = /var/www/domain1
> root $basepath/current/public;
> access_log $basepath/shared/log/nginx.access.log;
> error_log $basepath/shared/log/nginx.error.log;
> And then even better to be able th extract out those last three lines
> into a paths.conf file (or something), so that each server block could
> just say...
> $basepath = /var/www/domain#
> include paths.conf
As of now nginx has no variables expanded during config loading -
everything expaneded during request processing. So using
variables just to save some config lines is somewhat stupid as it
means wasting lots of CPU time for every request.
If you really need to simplify configs - it's easy to generate
them using make and sed.
More information about the nginx