如何使用conf文件';是NGINX conf文件中的文件名吗?

如何使用conf文件';是NGINX conf文件中的文件名吗?,nginx,Nginx,如果我有一个名为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_err

如果我有一个名为
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文件。我之所以想到这一点,是因为我可以使用
uwsgi
使用
%n
变量。它很方便,不必一直制作一堆文件。我只是把它们都符号化到同一个位置。我可以用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\u access.log
/var/log/nginx/domain.net\u access.log

您不能引用文件名。但可能您不需要它,可以改为引用域?域可能会工作。你是怎么看的?这将是一个很好的功能。我也有一些配置总是一样的。使用这种方法,我可以简单地将文件链接在一起…@RamondeKlein。