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
;
如果是手动修改的话,那就不用想了。