You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nginx中实现请求随机重定向至列表中的条目

Nginx实现随机重定向到多个目标的简便方法

完全可以用Nginx内置的split_clients模块实现,不需要额外进程,配置简单直接。

核心配置示例

在Nginx的http块中定义随机分配规则,再在对应location中执行重定向:

http {
    # 定义随机重定向的目标分配规则
    split_clients "${remote_addr}${request_uri}" $random_redirect {
        33.3%  https://redirect.com/1;
        33.3%  https://redirect.com/2;
        *      https://redirect.com/3;
    }

    server {
        listen 80;
        server_name example.com;

        # 匹配目标请求路径
        location /entryA {
            # 返回302临时重定向到随机分配的地址
            return 302 $random_redirect;
        }
    }
}

配置说明

  • split_clients是Nginx默认编译的模块,无需额外安装。它通过哈希指定的字符串(这里用remote_addr+request_uri)将请求分配到不同的变量值,实现近似均匀的负载分配。
  • 用remote_addr+request_uri作为哈希键的好处是:同一客户端访问同一入口时,会得到固定的重定向目标;如果需要每次请求都完全随机,可替换为${request_id}(每个请求唯一的标识)。
  • 百分比配置可以根据需求调整,*表示匹配剩余所有请求。

其他可选方案(按需选择)

如果需要更灵活的权重分配或动态调整目标,也可以用map模块结合随机变量,但split_clients是最简便的静态随机分配方案。

内容的提问来源于stack exchange,提问作者Kavfixnel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 12:12:13