如果有一个网站会怎样:测试网我已经开发了该网站的新版本。我需要先试用一下,然后再全面推出。所以我想将 10% 的网络流量分配给新网站版本,将 90% 分配给旧网站版本。
这可能吗?我该如何处理?
PS 典型的 lamp 堆栈:linux+apache2+mysql。1 个大型物理服务器(40gb RAM?)。
答案1
您可以设置nginx或者清漆缓存作为 Apache2 网站前面的反向代理,并对其进行配置以适当分割流量。
根据您网站的新版本是否与旧版本兼容,您可能需要确保始终为给定用户或 IP 地址提供网站的旧版本或新版本;除非您的整个想法都围绕着完全的混合搭配。
使用 nginx,您可以使用httpupstream
模块,并将不同的weight
后端分配给不同的后端,其中每个 Apache 后端将提供网站的特定版本。该模块还具有ip_hash
指令,以便您可以指定是否要大大增加给定客户端看到网站相同版本的可能性。
nginx 配置还支持读取 cookie;如果上述upstream
模块本身不够用,您还可以通过 cookie 创建一些额外的选择加入/选择退出逻辑,并让 nginx 根据 cookie 的内容进行流量分割。