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

标签 nginx

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

我想多次符号链接(symbolic link)一个常见的 .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 个进行符号链接(symbolic link):
/etc/nginx/conf.d/mynextsite.conf
/etc/nginx/conf.d/myothersite.conf
etc

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

最佳答案

您可以为此使用一个服务器 block 。例如:

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 - 如何在 NGINX conf 文件中使用 conf 文件的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33794549/

相关文章:

nginx:为什么有多个 conf 文件?

linux - 是否可以在单个NGINX容器中托管多个Web应用程序容器?

php - Apache/PHP 到 Nginx/Tornado/Python

bash - 为什么在后台使用带有 "daemon off"的 nginx 和 docker?

Docker-compose 来自守护进程 : manifest for nginx:1. 15-alphine 的错误响应未找到: list 未知: list 未知

django - 无法在 docker 容器内运行 django 和 Gunicorn 的情况下在 EC2 上使用 nginx 提供静态文件

PHP FPM 为所有 PHP 错误返回 HTTP 500

使用 nginx 重定向某个域的所有流量

regex - Nginx 使用特殊字符和正则表达式重写规则

file-upload - nginx 文件使用 proxy_pass 上传流