我试图让CORS根据我们系统中存在的客户列出的域名白名单。我们有一个白色标签的产品,让我们的公司CNAME将定制域添加到我们的系统中。我们需要通过在Access-Control-Allow-Origin: http://some.custom.domain
标题中添加来自HaProxy的响应,允许动态地允许Origin
来自任何这些自定义域。HaProxy动态列表/地图
我一直在阅读有关从haproxy加载列表/地图的不同方式,但我只是没有解决的最佳实施。我已经想出了大概3种可能的方式,但我想看看是否有其他人也有一些洞察力。我的选项到目前为止:
存储一个map我可以找到添加标题时可用的域。如何填充此映射文件是目前的问题。我想我可以在启动时通过LUA进行API调用来创建文件?或者它可能是一个NFS挂载的文件?每次将新域添加到我们的系统时,我们都必须重新加载,无论是通过相同的api调用还是直接转到套接字上的地图api。
使用LUA从现场请求通过HAProxy的每一个任务的API来验证,如果在
Origin
传递的域名是合法的,并添加标题。有可能使用Memcached的最少开销假设我们可以找到一个LUA用于memcached的客户端库。可能实施某种基于DNS的解决方案,我们运行我们自己的DNS服务器来解析这些自定义域,并让HaProxy对此进行查找。我不知道这是否可行,我只是知道haproxy具有DNS功能。奇怪的是,我们实际上并不想解决知识产权问题,我们只是想要一个“是”或“否”的答案。
是否有其他人知道这个问题的明显解决方案?我正在寻找易于实现的方法,但最终将请求本身的开销降至最低,因为这需要在每个请求上发生,并且标头为Origin
。
任何洞察赞赏!
雅我选择了列表方法。实际上我有LUA注册一个任务,在启动时从API加载列表并为每个域写入一个ACL。谢谢! – brad