Como redirecionar para dois domínios diffenrent com nginx

1

Eu tenho um domínio example.com e tenho 2 milhões de visitas todos os dias. Não há conteúdo de site para este domínio, eu só redirect(302) para outro domínio para obter minha taxa de promoção.

Mas eu não quero que todos esses 2 milhões de usuários visitem o mesmo site, talvez para 1 milhão deles, eu irei redirecionar para o aol.com, por outro milhão, eu irei redirecionar para bestbuy.com.

Como configurar meu nginx para redirecionar o domínio para outro? Se houver algo como " ip_hash ", seria melhor!

    
por missingcat92 02.08.2013 / 04:53

2 respostas

1

Você pode usar split_clients assim:

split_clients "${remote_addr}AAA" $destination {
              50%                 aol.com;
              50%                 bestbuy.com;
}

server {
    server_name example.com;
    return 302 http://$destination/;
}
    
por 02.08.2013 / 18:01
0

Isso é um pouco hacky e pode haver uma maneira mais clara - mas você pode usar o módulo de índice aleatório para escolher dois arquivos de um diretório, cada arquivo contendo uma atualização meta com um atraso de zero para URLs diferentes.

Portanto, sua configuração do nginx conteria

location / {
    random_index on;
}

e a raiz do documento conteria dois arquivos (digamos aol.com.html e bestbuy.com.html ) contendo algo como

<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>     

Os navegadores que suportam atualização meta redirecionarão para a URL na metatag imediatamente, para que os usuários verão a mensagem por um tempo muito curto (se possível).

    
por 02.08.2013 / 10:11