我需要使用 (queryparam servername) 的文本映射重写 URL,以根据查询参数将请求定向到不同的后端服务器。
我已经尝试使用 prg: 类型和 perl 脚本的 RewriteMap、RewriteRule。但是查询字符串在查找脚本中不可见。
例如地图文件
QS1 服务器1 QS2 服务器1 QS3 服务器3 QS4 服务器4 等等..(大约 10K 条目 -= 映射到大约 20 个后端服务器)
如果输入 URL 是 http://myrouter.com:8080/a/b/c?query=QS2
那么它应该被重写并发送到 http://Server1:9988/a/b/c?query=QS2 (是的,查询字符串)
http://myrouter.com:8080/a/b/c?query=QS4发送到 http://Server4:9988/a/b/c?query=QS4
我目前的试验似乎没有帮助。
重写引擎开启 RewriteMap 分发请求“prg:/export/requestdistributor.pl” 重写规则 ^(.*)$ ${distributeRequests:$1?%{QUERY_STRING}} [P]
我根据 URL 中的参数查找了Proxy 但这对于一组有限的查找条目很有用;不适用于映射到我正在寻找的 10 个后端服务器的 10K 查询参数。
谢谢。