nginx域名随机跳转到指定域名


0. 有时候需要将某个域名跳转到一些其他域名上,例如

用户访问a.com,nginx会随机分配到b.com c.com d.com…


1. 使用map映射变量,使用request_id生成随机值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
map $mod3 $redirect_domain {
1 "https://b.com";
2 "https://c.com";
3 "https://d.com";
}

map $my_variable $mod3 {
"~([1-3])" $1; # 这里是正则表达式,需要根据实际规则调整
}

server {
listen 80;
server_name a.com;

location / {
set $my_variable $request_id;

if ($mod3) {
return 302 $redirect_domain$request_uri;
}
}
}