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

010*_*101 5 nginx

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

我想对一个通用的 .conf 文件进行多次符号链接,因为除了一个小字符串之外,它们都是相同的。作为一个简单的例子,而不是这样:

server {
    #
    # snip
    #

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

    #
    # snip
    #
}
Run Code Online (Sandbox Code Playgroud)

我想做这个:

server {
    #
    # snip
    #

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

    #
    # snip
    #
}
Run Code Online (Sandbox Code Playgroud)

我想为该文件命名mysite.conf,并且想对另外 5 个文件进行符号链接:

/etc/nginx/conf.d/mynextsite.conf
/etc/nginx/conf.d/myothersite.conf
etc
Run Code Online (Sandbox Code Playgroud)

我想要这个,这样我就可以重复使用完全相同的conf文件来做一些事情。我想到这个是因为我可以uwsgi使用%n变量来做到这一点。不必一直制作一堆文件,这很方便。我只是将它们全部符号链接到同一个位置。我可以使用 nginx conf 文件来做到这一点吗?

Ale*_*Ten 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;

    ....
}
Run Code Online (Sandbox Code Playgroud)

因此文件将被命名为/var/log/nginx/example.org_access.log/var/log/nginx/domain.net_access.log.