我试图到处寻找,但我找不到任何解决方案。我需要根据自定义文件中的数据创建 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";
}
是否可以根据我的配置文件的内容动态创建映射{}部分?
我将
如何解决此任务。
在nginx配置中使用
include
指令:map $http_x_instance_id $pool { include /path/to/instances; }
安装通知工具。
编写一个脚本来监视您的文件(请参阅此处的一些示例)。每次文件更改时,执行如下操作:
sed -n 's/(.*):[[:blank:]]*(.*)/1 "2";/p' /path/to/your/custom/file >/path/to/instances nginx -reload