在服务器{}块中将根目录引用作为变量


11

在我的nginx服务器{}块中,我用路径定义了root。以后如何引用此路径?

这是我要完成的工作:

server {
    listen 80;
    root /var/www/foosite;

    ...

    include $root/*.ngaccess;
}

不幸的是,使用$ root不起作用(因为我还没有定义它)。Nginx是否提供访问根值的方法?

Answers:


15

您需要document_root变量。


这样做:root / var / www / foosite / public /; 包括$ document_root.ngaccess; 我收到错误消息“ nginx:[emerg] open()“ /etc/nginx/$document_root/.ngaccess”失败(2:无此类文件或目录)。$ document_root似乎是解决方案,但是我打错了吗?根据这篇文章(以及我遇到的其他文章)forum.linode.com/viewtopic.php?t=7898,不能在include语句中使用变量。如果为真,那是不幸的。
skyler

这意味着nginx仅include在启动时评估指令,而不是针对每个请求(有意义),因此,不幸的是,您似乎无法实现。
mgorven

1
我在这里也遇到了一个问题:“路径值可以包含变量,除了$ document_root和$ realpath_root。” nginx.org/en/docs/http/…–
编辑器
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.