是否可以从文件创建 Nginx 路由配置



我试图到处寻找,但我找不到任何解决方案。我需要根据自定义文件中的数据创建 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";
}

是否可以根据我的配置文件的内容动态创建映射{}部分?

我将

如何解决此任务。

  1. 在nginx配置中使用include指令:

    map $http_x_instance_id $pool {
        include /path/to/instances;
    }
    
  2. 安装通知工具。

  3. 编写一个脚本来监视您的文件(请参阅此处的一些示例)。每次文件更改时,执行如下操作:

    sed -n 's/(.*):[[:blank:]]*(.*)/1 "2";/p' /path/to/your/custom/file >/path/to/instances
    nginx -reload
    

最新更新