5

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

root $conf_path/www
4

2 回答 2

8

您实际上可以使用该-p选项来做到这一点。

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

/your/folder $ sudo nginx -c `pwd`/nginx.conf -p "`pwd`"

从您的应用程序文件夹中。
您的nginx.conf文件从以下位置更改:

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

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

只要确保您检查指向的相对链接/etc/nginx/

于 2014-08-25T13:21:12.673 回答
0

总的来说,我不相信这是可能的。但是,你也许可以根据这篇文章一起破解一些东西。

引用相关部分:

2ed 版本在这里: 如何在 nginx.conf 中引用 OS 环境变量

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

并进一步

您可以在 nginx 构建中启用 ngx_lua 来读取系统环境变量:http ://wiki.nginx.org/HttpLuaModule

env PATH;
http {
    ...
    server {
        location /path {
            set_by_lua $path 'return os.getenv("PATH")';
            ...
        }
    }

顺便说一句,要使用 set_by_lua 指令,您还需要在此处启用 ngx_devel_kit 模块:https ://github.com/simpl/ngx_devel_kit (如果您使用 ngx_openresty 包会更容易)。

于 2013-06-01T02:34:34.060 回答