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

时间:2015-11-19 03:06:43

标签: 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_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文件吗?

1 个答案:

答案 0 :(得分:0)

您可以使用一个服务器块。例如:

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