我有一个域名 example.com,每天有 200 万次访问。这个域名没有网站内容,我只能将redirect(302)
其转移到其他域名来获得推广费。
但我不希望所有这 200 万用户都访问同一个网站,也许对于其中 100 万,我会重定向到 aol.com,对于另外 100 万,我会重定向到 bestbuy.com。
如何配置我的nginx
重定向到不同的域?如果有类似“ ip_hash
”的东西,那就更好了!
答案1
您可以使用拆分客户端像这样:
split_clients "${remote_addr}AAA" $destination {
50% aol.com;
50% bestbuy.com;
}
server {
server_name example.com;
return 302 http://$destination/;
}
答案2
这有点不合时宜,可能有一个更干净的方法——但是你可以使用随机索引模块从目录中选择两个文件,每个文件包含一个延迟为零的元刷新到不同的 URL。
因此你的 nginx 配置将包含
location / {
random_index on;
}
并且文档根目录将包含两个文件(例如aol.com.html
和bestbuy.com.html
),其中包含类似
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>example.com</title>
<meta http-equiv="refresh" content="0;URL='http://aol.com/'" />
</head>
<body>
<p>This page has moved to a <a href="http://aol.com/">
aol.com</a>.</p>
</body>
</html>
支持元刷新的浏览器将立即重定向到元标记中的 URL,因此用户只会在很短的时间内看到该消息(如果有的话)。