nginx变量用于配置文件的路径

时间:2013-05-31 20:12:00

标签: nginx config

有没有办法指定,例如root应该相对于配置文件所在的目录?像

这样的东西
root $conf_path/www

2 个答案:

答案 0 :(得分:4)

您实际上可以使用-p选项执行此操作。

如果您的配置文件与您的应用程序位于同一目录中,则可以运行:

/your/folder $ sudo nginx -c `pwd`/nginx.conf -p "`pwd`"
来自你的app文件夹 您的nginx.conf文件更改为:

http {
    include mime.types;
    root /your/folder;
    server {
        listen 8000;
    }
}

http {
    include /etc/nginx/mime.types;
    root .;
    server {
        listen 8000;
    }
}

确保检查指向/etc/nginx/

的相对链接

答案 1 :(得分:0)

总的来说,我不相信这是可能的。但是,您可能可以根据this article一起破解某些内容。

引用相关部分:

  

2ed版本在这里:   How to reference OS Environment Variables in nginx.conf

     

发表于Nginx论坛:   http://forum.nginx.org/read.php?2,215269,215278#msg-215278

并进一步

  

您可以在启用ngx_lua的情况下读取系统环境变量   nginx build:http://wiki.nginx.org/HttpLuaModule

env PATH;
http {
    ...
    server {
        location /path {
            set_by_lua $path 'return os.getenv("PATH")';
            ...
        }
    }
  BTW,要使用set_by_lua指令,还需要启用   这里的ngx_devel_kit模块:https://github.com/simpl/ngx_devel_kit   (如果你使用ngx_openresty包,它会更容易。)