desenv-web-rp.com

Como posso atualizar meu site sem forçar os usuários a esperar?

O tempo de inatividade é inconveniente para os usuários e, atualmente, eles precisam aguardar a atualização do mecanismo de um site. Além disso, ao usar scripts prontos para uso, existe o risco de que uma alteração na configuração não funcione da maneira pretendida (mesmo que tenha sido testada em um site intermediário).

Como posso manter várias versões de um site em um servidor e alternar entre elas sem causar nenhum tempo de inatividade (por exemplo, com um arquivo htaccess)?

8
Gelatin

Você está em uma máquina Linux/BSD? Nesse caso, você pode facilmente usar links simbólicos para atingir esse objetivo.

Crie a versão 1 do site aqui:

/var/www/www.example.org.v1

Crie um link simbólico apontando para este diretório

cd /var/www
ln -s www.example.com.v1 www.example.com

Isso deve fornecer uma listagem de diretório (ls -la) que se parece com isso:

lrwxr-xr-x   1 userid  users    18 Aug  3 03:35 www.example.com -> www.example.com.v1
drwxr-xr-x   2 userid  users   512 Aug  3 03:35 www.example.com.v1

Defina seu servidor da web para usar /var/www/www.example.com como raiz do documento. Você nunca terá que mudar isso; todo o apontamento será feito no nível do sistema de arquivos.

Agora, quando você deseja trocar a versão 2 do site, basta colocar a nova versão em:

/var/www/www.example.org.v2

E atualize o link simbólico para apontar para esta versão:

ln -sfh www.example.com.v2 www.example.com

O que deixará a saída do diretório assim:

lrwxr-xr-x   1 userid  users    18 Aug  3 03:43 www.example.com -> www.example.com.v2
drwxr-xr-x   2 userid  users   512 Aug  3 03:42 www.example.com.v1
drwxr-xr-x   2 userid  users   512 Aug  3 03:41 www.example.com.v2

Como você pode ver, o link simbólico www.example.com agora está apontando para a versão 2 do seu site. Esta é uma operação atômica e não deve causar indisponibilidade relacionada a arquivos indisponíveis.

Obviamente, ainda é necessária uma complexidade considerável para garantir que as estruturas do banco de dados sejam atualizadas, quaisquer recursos estáticos estejam disponíveis (e vinculados à versão correta), etc. Um novo site está disponível instantaneamente.

O Windows Vista e o Server 2008 também oferecem suporte a links simbólicos usando o comando mklink, embora eu não tenha nenhuma experiência direta com eles.

6
JasonBirch

Você pode usar hosts virtuais no Apache para ter 2 versões do código em 2 URLs diferentes. Um exemplo comumente usado é:

test.example.com -> /var/www/version1.2

www.example.com -> /var/www/version1.1

ambos estão no mesmo servidor, mas talvez apenas um esteja acessível ao mundo. Quando estiver convencido de que test.example.com está funcionando, basta mudar para onde eles apontam na sua configuração do Apache e ... pronto. Novo site, novo código. Supondo que não houve alterações no esquema do banco de dados, isso deve funcionar. Então, depois de fazer a alteração, será:

test.example.com ->/var/www/newtestversion

www.example.com -> /var/www/version1.2

Aqui está um exemplo de diretiva de configuração do Apache para um host virtual:

<VirtualHost *:80>

     ServerAdmin [email protected]

     DocumentRoot "/var/www/version1.1"

     ServerName test.example.com

</VirtualHost>

Para obter mais informações sobre como fazer isso, consulte o documentação do Host virtual do Apache

Não sei como fazer isso no IIS, mas imagino que também haja uma maneira.

Se algo der errado, mude o host virtual de volta ao original e seu site antigo voltou ... sem problemas. Você precisa reiniciar o Apache para que essas alterações tenham efeito, mas isso geralmente é uma coisa muito rápida de se fazer.

7
gabe.

Em IIS, você pode configurar um segundo diretório virtual com suas atualizações.

Em seguida, você redireciona todas as solicitações ou remapeia as ligações do segundo site para o nome do host desejado

Redirecionamento de HTTP em IIS 7: http://technet.Microsoft.com/en-us/library/cc732930 (WS.10) .aspx

1
Rickjaah

O que eu sugeriria:

  • Teste localmente em um servidor de desenvolvimento antes de fazer upload de quaisquer alterações. Não faça as alterações em um servidor ativo até ter certeza de que funciona no servidor de teste.
  • Execute a manutenção no menor tempo de tráfego pesado. Para a maioria dos sites, isso ocorre nas primeiras horas da manhã nos fins de semana. Se os fins de semana não forem uma opção, faça-o durante o horário menos trafegado durante a semana.
  • Avise seus usuários sobre manutenção programada com antecedência.
0
Virtuosi Media