在 nginx 中获取字符串的哈希值?

在 nginx 中获取字符串的哈希值?

我想根据标头中存在的字符串在 nginx 反向代理中跨上游分配流量,但要确定性地和高效地执行此操作。从情况来看,可以考虑类似蜂窝路由设置的东西。为了做到这一点,我想散列此字符串并将该散列投影到 n 空间(其中n是上游的数量)。这将在我们的反向代理群中提供一致且“粘性”的连接路由设置。

如果可能的话,我希望避免在我的构建中添加模块,但如果无法避免,那就这样吧。例如,我知道 njs、lua 等模块可以为我们提供这一点。

如果我能做点类似的事情就好了

set $destination_hash hash_of $http_my_header;

我意识到这超出了“配置”的极限,更像是应用程序逻辑,但在蜂窝路由的背景下,它似乎足够配置,所以我想问一下。如果答案是只有 lua/perl/js 模块才能工作,那就这样吧。如果如果有案例、例子或参考资料就更好了:)

相关内容