我的使用场景主要是给Cloudreve的OneDrive的链接进行的随机分流。使用到 split_clients模块进行分发,split_clients主要是用来做请求分流的,根据一定的规则把流量分配到不同的后端服务或者配置上。比如说AB测试、灰度发布之类的场景。
Split Clients支持多种标准进行分流,例如:
IP地址:将某些IP地址的请求单独筛选出来,比如测试环境或者特定机器组。
User-Agent:根据客户端浏览器的类型或版本进行分发,来测试不同浏览器的兼容性。
Cookie:根据某些Cookie值来分发请求,比如某些用户组、地区或语言偏好等。
本文实例利用时区和ip地址进行区分
  split_clients "${remote_addr}${time_local}" $split_var {
        33%     "url1";
        33%     "url2";
        33%     "url3";
    }
    # 将split变量映射到对应的目标URL
    map $split_var $target_domain {
        url1    "114514.com";
        url2    "1919810.com";
        url3    "1145141919810.com";
    }
server 块这样写的,$request_uri为原有的请求url路径。
 location / {
            # 拼接完整的URL并保留参数
            return 302 https://$target_domain$request_uri;
        }