gpt4 book ai didi

load-balancing - 如何负载平衡 FastAGI?

转载 作者:行者123 更新时间:2023-12-01 23:35:29 26 4
gpt4 key购买 nike

我正在使用将从 Asterisk 拨号方案调用的 Perl 编写多个 AGI。我希望同时收到大量调用,因此我需要一种方法来对它们进行负载平衡。我被建议使用 FastAGI 而不是 AGI。问题是我的 AGI 将分布在许多服务器上,而不仅仅是一个服务器,我需要我的入口点 Asterisk 根据它们的可用性在这些服务器(agis 所在的位置)之间调度调用。因此,我想到为 FastAGI 应用程序提供多个 IP 地址而不是一个。可能吗?

最佳答案

任何 TCP 反向代理都可以做到这一点。 HAProxy是一个和nginxTCP module成为另一个。

不久前,我使用 node.js ( nodast ) 制作了我自己的 FastAGI 代理来解决这个非常具体的问题以及更多问题,包括通过 SSL 运行 FastAGI 协议(protocol)和基于 AGI 路由请求的能力请求位置和参数(比如$dnis, $channel, $language, ...)

此外,由于代理配置基本上是 javascript,您实际上可以以非常有趣的方式进行负载平衡。

示例配置如下所示:

var config = {
listen : 9090,
upstreams : {
test : 'localhost:4573',
foobar : 'foobar.com:4573'
},
routes : {
'agi://(.*):([0-9]*)/(.*)' : function() {
if (this.$callerid === 'unknown') {
return ('agi://foobar/script/' + this.$3);
} else {
return ('agi://foobar/script/' + this.$3 + '?callerid' + this.$callerid);
}
},
'.*' : function() {
return ('agi://test/');
},
'agi://192.168.129.170:9090/' : 'agi://test/'
}
};
exports.config = config;

关于load-balancing - 如何负载平衡 FastAGI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/980417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com