Transição de domínio para novo host da web sem esperar pela propagação do DNS

3

Eu estava pensando em mudar para o Amazon EC2 para hospedar meu site para lidar com mais tráfego. Parece que eu teria que atualizar os registros DNS para apontar para o novo servidor, mas eu queria saber se havia uma maneira de evitar ter que esperar o novo registro DNS se propagar. Colocar o código em ambos os hosts não funcionaria para mim, já que o aplicativo grava em um banco de dados com bastante frequência. Pensei apenas em usar um redirecionamento meta ou redirecionamento php no host antigo para redirecionar para o novo ip de host, mas queria saber se há uma maneira melhor e mais aceita de fazer isso.

    
por jhchen 03.04.2010 / 00:13

4 respostas

10

aqui é um truque que eu uso o tempo todo ... :) ele assume que você controla o servidor atual.

coloque o site / db / whatever no novo servidor e no seu servidor antigo / atual, ative os módulos proxy, proxy_http e rewrite e adicione as seguintes linhas no arquivo de configuração do apache para o seu site antigo / atual:

RewriteEngine on
ProxyPass          /      http://<your-fqdn-here>/
ProxyPassReverse   /      http://<your-fqdn-here>/

Por último, adicione uma entrada no seu arquivo / etc / hosts do seu servidor antigo / atual que tenha a seguinte sintaxe:

<new-ip-address-of-ec2>   <your-fqdn-here>

é isso. você tem um proxy reverso apontando para si mesmo, mas resolvendo seu próprio nome para o novo servidor. Quando a propagação do DNS for lançada, o novo servidor será atingido diretamente. nós chamamos esse pequeno truque PRRP ou Pseudo-Recursivo-Reverso-Proxy .

Para aqueles aplicativos web traquinas (por mal-intencionados que eu quero dizer mal projetado) que exigem muitos furos no firewall, isso permite que você deixe apenas o servidor proxy reverso no dmz e cutuque apenas as portas 80/443 para a rede interna. / p>     

por 03.04.2010 / 01:03
4

Faça com que o seu antigo host proxy os pedidos de http para o novo host

    
por 03.04.2010 / 00:17
4

Você também pode reduzir o tempo de espera da propagação de DNS, fazendo com que o TTL do nome de domínio seja reduzido ao preparo para a mudança.

    
por 03.04.2010 / 00:26
0

(Isso melhora a resposta de Peter Carrero aqui, evitando a necessidade de flexão do DNS local.)

  1. Instale o website em seu novo servidor.

  2. No seu antigo servidor, habilite primeiro alguns módulos do Apache:

    a2enmod proxy
    a2enmod proxy_http
    a2enmod rewrite
    
  3. Adicione à configuração vhost do seu site no servidor antigo (onde 123.456.1.1 representa o endereço IP do seu novo servidor):

    RewriteEngine     on
    RewriteCond       %{HTTPS} off
    RewriteRule       (.*)  https://%{HTTP_HOST}%{REQUEST_URI}
    
    ProxyPreserveHost on
    ProxyPass         /     http://123.456.1.1/
    ProxyPassReverse  /     http://123.456.1.1/
    
  4. Verifique se você não tem nenhum encaminhamento do tráfego HTTP para o tráfego HTTPS configurado para seu website em seu novo servidor. Em combinação com a configuração do proxy, resultaria em um loop de redirecionamento.

  5. Após a propagação do DNS, remova a configuração vhost do seu site do servidor antigo, mas mova a peça para HTTP para o redirecionamento HTTPS do mesmo para o novo servidor (se desejado).

Explicação: Assim como a resposta de Peter, obtemos um proxy reverso apontando para o mesmo site em um servidor diferente. Mas, em vez de dobrar o DNS por meio de /etc/hosts , criamos o mesmo efeito de sobrescrever o DNS apenas na configuração do Apache com ProxyPreserveHost on . De acordo com o manual do Apache , isso manterá o cabeçalho Host: HTTP do original , solicitação de entrada definida ao fazer proxy para o novo servidor. Assim, o servidor irá usá-lo normalmente para hospedagem virtual baseada em nome.

    
por 21.07.2017 / 20:33