Não consegui encontrar uma pergunta que corresponda ao meu cenário específico, portanto, espero que isso não seja uma duplicação. Se for o caso, peço desculpas.
Eu tenho 4 servidores da web por trás de um balanceador de carga. Eu quero apenas www.mydomain.com, 123.123.123.123 (endereço IP público do meu servidor) e 456.456.456.456 (endereço IP da rede interna do meu servidor) para funcionar, qualquer outra coisa deve redirecionar para www.mydomain.com.
Por que: preciso enviar tudo para www.mydomain.com porque tivemos pessoas configurando outros domínios (www.otherdomain.com) apontando para nosso endereço IP, para que ele funcione como um espelho do nosso site. Não sabemos por que eles fazem isso, mas o Google começa a indexar o site como se fosse um site totalmente diferente e causa problemas. Eu preciso permitir que os endereços IP do servidor sejam usados porque usamos isso para a conversação interna do servidor por meio de uma API personalizada, para contornar o balanceador de carga.
As únicas soluções que consegui encontrar foram redirecionar tudo, INCLUINDO os endereços IP para www.mydomain.com, ou eles acabaram redirecionando nada.
Aqui está minha configuração atual (truncada por simplicidade):
server {
listen 80;
server_name www.mydomain.com 123.123.123.123 456.456.456.456;
}
server {
listen 80 default;
server_name _;
rewrite ^ http://www.mydomain.com$request_uri?;
}
Esperado: as solicitações para o domínio correto ou para o endereço IP correspondem à primeira regra. Todas as outras solicitações correspondem à segunda regra e são redirecionadas. Real: Nada é redirecionado, estou assumindo porque o NGINX está apenas combinando o endereço IP, independentemente do domínio, com a primeira regra. Também pode ser possível que o balanceador de carga esteja estragando tudo? Estou usando um balanceador de carga em nuvem da Rackspace, se isso ajudar.
Eu também tentei esta configuração:
server {
listen 80 default;
server_name www.mydomain.com;
}
server {
listen 80;
server_name _;
rewrite ^ http://www.mydomain.com$request_uri?;
}
Isso tem os mesmos resultados que o anterior. Nada parece ser redirecionado.
Alguma idéia de como posso corrigir isso?
Obrigado pela sua ajuda!