Nginx:相对于 conf 文件的根路径

Ant*_*eev 20 nginx

是否可以指定root相对于包含 conf 文件的路径?

我们正在开发一个 Web 应用程序,并app-nginx.conf在项目目录中保存具有应用程序特定配置的文件。我希望能够将此文件包含到 main 中,nginx.conf并具有root正确引用所需项目子目录的路径。例子:

# /etc/nginx/nginx.conf
http {
    include /absolute/path/to/app/app-nginx.conf
}


# /absolute/path/to/app/app-nginx.conf
server {
    server_name localhost;
    listen 9090;

    root ./app;
}
Run Code Online (Sandbox Code Playgroud)

使用类似配置启动 nginx 后,nginx 尝试解析./app相对于 nginx 安装目录(/usr/local/Cellar/nginx/1.4.3/在我的情况下)的路径,而不是应用程序的目录。

Pot*_*thu 11

是否可以指定相对于包含的 conf 文件的根路径?

简短的回答:没有。

龙回答:Nginx的,默认情况下,只知道路径,如--prefix--conf-path那些在编译时设置(参考:https://nginx.org/en/docs/configure.html)。我们可以通过运行命令nginx -V(大写“V”)找到 Nginx 使用的各种路径。因此,--conf-path是主nginx.conf文件所在的位置,路径用于任何相对路径。

但是,根据官方文档(https://nginx.org/r/root),root指令可以包含其他变量。

感谢@cyker 在发布初始答案 5 年后澄清!