我试图四处查看,但找不到任何解决方案。我需要基于我的自定义文件中的数据创建Nginx路由配置。文件将自动更新,如下所示。
api_key_1: instance_id_1
api_key_2: instance_id_2
在nginx.conf中,我期望像这样
upstream instance_id_1 {
server 127.0.0.1:8080;
}
upstream instance_id_2 {
server 127.0.0.1:8081;
}
map $http_x_instance_id $pool {
api_key_1 "instance_id_1";
api_key_2 "instance_id_2";
}
是否可以根据我的配置文件的内容动态创建map {}部分?
答案 0 :(得分:0)
我将如何解决这一任务。
在您的nginx配置中使用include
指令:
map $http_x_instance_id $pool {
include /path/to/instances;
}
编写一个脚本来监视文件(请参见一些示例here)。在每个文件更改上执行以下操作:
sed -n 's/\(.*\):[[:blank:]]*\(.*\)/\1 "\2";/p' /path/to/your/custom/file >/path/to/instances
nginx -reload