如何在NGINX conf文件中使用conf文件的文件名?

如果我有一个名为mysite.conf的文件存储在/etc/nginx/conf.d中.有没有办法从conf文件中获取字符串值’mysite’?

我想多次符号链接一个常见的.conf文件,因为它们除了一个小字符串外都是相同的.作为一个简单的例子,而不是这个:

server {
    #
    # snip
    #

    access_log /var/log/nginx/mysite_access.log;
    error_log /var/log/nginx/mysite_error.log;

    #
    # snip
    #
}

我想做这个:

server {
    #
    # snip
    #

    access_log /var/log/nginx/$filename_access.log;
    error_log /var/log/nginx/$filename_error.log;

    #
    # snip
    #
}

我想将文件命名为mysite.conf,我想要更多符号链接5个:

/etc/nginx/conf.d/mynextsite.conf
/etc/nginx/conf.d/myothersite.conf
etc

我希望这样,以便我可以重复使用完全相同的conf文件.我想到了这一点,因为我可以使用%n变量使用uwsgi.方便的是不必一直制作一堆文件.我只是将它们符号链接到同一个地方.我可以用nginx conf文件做到吗?

最佳答案
您可以使用一个服务器块.例如:

server {
    listen 80;
    sever_name example.com example.org domain.net;

    error_log /var/log/nginx/${host}_error.log;
    access_log /var/log/nginx/${host}_access.log;

    ....
}

因此,文件名为/var/log/nginx/example.org_access.log或/var/log/nginx/domain.net_access.log.

转载注明原文:如何在NGINX conf文件中使用conf文件的文件名? - 代码日志