![在 nginx 中获取字符串的哈希值?](https://linux22.com/image/766551/%E5%9C%A8%20nginx%20%E4%B8%AD%E8%8E%B7%E5%8F%96%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E5%93%88%E5%B8%8C%E5%80%BC%EF%BC%9F.png)
我想根据标头中存在的字符串在 nginx 反向代理中跨上游分配流量,但要确定性地和高效地执行此操作。从情况来看,可以考虑类似蜂窝路由设置的东西。为了做到这一点,我想散列此字符串并将该散列投影到 n 空间(其中n
是上游的数量)。这将在我们的反向代理群中提供一致且“粘性”的连接路由设置。
如果可能的话,我希望避免在我的构建中添加模块,但如果无法避免,那就这样吧。例如,我知道 njs、lua 等模块可以为我们提供这一点。
如果我能做点类似的事情就好了
set $destination_hash hash_of $http_my_header;
我意识到这超出了“配置”的极限,更像是应用程序逻辑,但在蜂窝路由的背景下,它似乎足够配置,所以我想问一下。如果答案是只有 lua/perl/js 模块才能工作,那就这样吧。如果是如果有案例、例子或参考资料就更好了:)