Não há maneira de contornar isso sem adicionar outro servidor de algum tipo ... Há uma grande variedade de opções, mas tudo se resume à redundância do servidor de uma forma ou de outra.
Eu tenho um servidor Windows 2008R2 que hospeda o Sql Server e o IIS para nossa empresa.
Eu preciso fazer isso de vez em quando para atualizações e backup.
Esta é a configuração
O servidor Windows 2008R2 dedicado hospeda o meu servidor web Windows 2008R2 vps (que é o que eu preciso remover).
Quando tiro este servidor, preciso de uma maneira de sinalizar o domínio que está passando por manutenção em vez de host não encontrado.
O domínio aponta diretamente para o meu servidor web, então, quando ele cai, tudo o que vê é o host não encontrado. O domínio é hospedado pelo godaddy se isso ajudar qualquer um.
Existe alguma maneira de contornar isso? Alguém tem alguma sugestão?
Agora mesmo sua configuração é:
DNS -> Your Server
Assim, o único ponto em que você poderia fazer qualquer coisa é redirecionando o domínio:
DNS -| Your Server
|-> Some Other Server Hosting 'This is Down'
Infelizmente, o DNS é colocado em cache tão agressivamente que pode demorar um pouco até que uma atualização, seja para desativar seu site ou para trazê-lo de volta, seja propagada para todos os lugares. Um curto TTL no registro DNS ajudaria, mas prejudicaria um pouco o desempenho.
A melhor jogada em geral é ter um proxy reverso ou um balanceador de carga na frente da sua máquina:
DNS -> Load Balancer -> Your Server
Dessa forma, você pode alterar para onde o balanceador de carga aponta ou até mesmo obter o próprio balanceador de carga para hospedar a mensagem 'This is Down'. Ele também abre uma configuração mais confiável, onde você tem mais de um servidor:
DNS -> Load Balancer +--> Server 1
+--> Server 2
Nesta configuração, você pode ser capaz de derrubar apenas uma máquina por vez e não ter seu site em baixo.
Por fim, sua opção final, se você não precisa reiniciar a máquina, ou não se importa que o site ainda esteja inativo enquanto está reiniciando, é condensar tudo isso em uma única máquina. Execute Nginx na máquina, tenha proxy para o IIS normalmente, mas mostre uma mensagem de erro quando necessário.
Você pode colocar o haproxy na frente do seu servidor Windows, configurá-lo com uma verificação de status do host e configurar uma página 'Serviço não disponível'.