gpt4 book ai didi

nginx - 如何在 nginx 中使用 url 路径名作为上游哈希

转载 作者:行者123 更新时间:2023-12-04 11:03:58 31 4
gpt4 key购买 nike

我有一个配置为使用 queryparam 作为上游哈希的 nginx 服务器。网址如下所示

http://www.my-server.com/xyz/WXYZ?abc=123

和配置如下
upstream test {
hash $arg_abc;
....
}

有没有可能使用 WXYZ URL的一部分作为上游哈希?
WXYZ是动态值, xyz总是一样的,并且会在那里。

这是我尝试过的,
location ~ ^/xyz/(.).*$ {
hash $1
}

最佳答案

是的,根据 hash 的文档, 只能在 upstream 中使用上下文,所以你尝试过的确实行不通。

但是,如果其他部分仍然保持不变,为什么您只需要使用 URI 中的某个路径,而不是整个路径?我认为这个想法是整个字符串应该被进一步散列,所以,即使你所有的 URL 开始相同,散列函数仍然应该均匀分布所有内容。因此,您很可能只使用 $request_uri$uri作为你的哈希。

或者,如果您仍想按照自己的方式进行操作,您可以尝试在 location 中使用命名模式匹配。 ( location ~ ^/xyz/(?<varForHash>.).*$ {… ),然后使用来自此类匹配的变量 ( $varForHash ) 作为您的 hash (您甚至可以使用示例中的 $1 ,只是在适当的上下文中 - upstream )。

关于nginx - 如何在 nginx 中使用 url 路径名作为上游哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31994395/

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