NGinx在同一个应用程序实例上拆分测试两个页面
我正在尝试在一个web应用程序上使用一个主机名和实例对两个网页进行a/b拆分测试 以下是我努力实现的目标: HTTP请求/ 请求被代理到backend.app.com 请求被代理到backend.app.com/a或backend.app.com/b 理想情况下,这将是一个粘性会话,它将在会话期间保持适当的/a或/b,类似于应用程序池可以实现的功能。 可能吗?想法?您正在寻找指令 来自NGinx在同一个应用程序实例上拆分测试两个页面,nginx,Nginx,我正在尝试在一个web应用程序上使用一个主机名和实例对两个网页进行a/b拆分测试 以下是我努力实现的目标: HTTP请求/ 请求被代理到backend.app.com 请求被代理到backend.app.com/a或backend.app.com/b 理想情况下,这将是一个粘性会话,它将在会话期间保持适当的/a或/b,类似于应用程序池可以实现的功能。 可能吗?想法?您正在寻找指令 来自 在本例中,arg_标记几乎可以是您想要的任何变量 问具体问题也是如此。不是想法或建议。请参考帮助中心了解如何提
在本例中,arg_标记几乎可以是您想要的任何变量 问具体问题也是如此。不是想法或建议。请参考帮助中心了解如何提问:谢谢,但我不知道如何使用arg_令牌在两条路径中传递。这是一般问题的一般示例。从这里开始,您必须研究处理用例的不同可能方法。有很多关于split_客户端的文章,所以我祝你好运。@DarrenBounds我认为如果你将$remote_addr和$remote_port组合用于哈希,nginx将在会话期间使用相同的目标url/a或/b,正如你在问题中所问的那样。
http {
# ...
# application version 1a
upstream version_1a {
server 10.0.0.100:3001;
server 10.0.0.101:3001;
}
# application version 1b
upstream version_1b {
server 10.0.0.104:6002;
server 10.0.0.105:6002;
}
split_clients "${arg_token}" $appversion {
95% version_1a;
* version_1b;
}
server {
# ...
listen 80;
location / {
proxy_set_header Host $host;
proxy_pass http://$appversion;
}
}
}