nginx 可以从文件设置变量吗?

nginx 可以从文件设置变量吗?
server {
    set $serverNames /www/test.txt;
    server_name $serverNames;
    ...

我想知道我是否可以从文本中读取内容并将其分配给变量。我尝试了上述代码,但没有成功。

答案1

我认为你不能默认将文件“读”到变量中。

有第三方模块可以将某个位置的值(其本身可以引用文件)读入变量,例如nginx-eval-模块

但对于您的用例,我认为这是过度的(并且您将依赖第三方模块)。

NGINX 可以做的是包括您的配置中的代码片段。

例如,你可以这样做:

# nginx configuration
server {
    include /www/test.txt
    ...
}

# /www/test.txt
server_name
    example.com
    example.net
    ...
;

等等。

如果是自动生成的文件,则修改生成脚本以包含在开头和结尾test.txt应该非常容易。server_name;

如果是手动修改的话,那就不用想了。

相关内容