Português do Brasil English
Devin no Facebook  Devin no Twitter  RSS do Site 
Servidores    

Como evitar erros na web com Varnish: grace e saintmode


Comentários  2
Visualizações  
514.145

Erros nos servidores web são muito comuns. Diversos motivos podem acontecer: um banco de dados caiu, faltou memória, deu um problema na rede, o sistema dinâmico tá consumindo muita CPU, um htaccess com erro de sintaxe, uma função mal-escrita entrou em loop infinito, entre muitos outros. Quando algum erro como esse ocorre, o usuário recebe um famoso “Error 500 Internal Server Error” (ou até um “503 Service Unavailable”). O Varnish pode ser usado para mascarar esse tipo de erro e funciona de uma forma bem simples: se o servidor der algum erro, o Varnish serve a página que está em cache, ao invés do erro. O usuário vai pegar um conteúdo possivelmente antigo, mas em muitos casos é melhor do que ele ser presenteado com um erro.

Conheçam agora os mecanismos responsáveis por isso: grace e saintmode!

Leia mais

Servidores    

Lidando com o 404 nos servidores Web


Comentários  0
Visualizações  
521.818

O código de status HTTP 404 é bem famoso na Internet, ele diz que a requisição do cliente não foi encontrada no servidor. Muitas vezes, os usuários tentam acessar páginas que não existem dentro de um site: ou por causa de um link quebrado, ou uma digitação errada, ou algum outro erro humano. Para esses usuários, a página 404 pode se tornar uma porta de entrada para outros conteúdos dentro do site, ou até mesmo para apresentar alguma brincadeira e melhorar a imagem do site (acredite, adoramos brincadeiras com o 404).

Existem diversas formas de se lidar com o famoso “404 Página Não Encontrada”. Confirma algumas…

Leia mais

Servidores    

Páginas de erros no squid


Comentários  8
Visualizações  
552.942

O squid é um servidor de proxy que geralmente é usado para servir os navegadores dos usuários e ser o intermediário entre eles e os servidores web espalhados pela Internet. Quando usamos proxy, uma característica importante é que todas as requisições são feitas pelo navegador, inclusive as de DNS. Isso significa que se o navegador conseguiu conectar-se ao servidor proxy, todo o resto das ações é feito pelo proxy.

Normalmente e sem proxy, um navegador quando encontra algum erro apresenta sua própria página de erro. Mas agora com um proxy configurado, ele não tem como saber que possa ter acontecido algum erro. Para os navegadores, a conexão foi estabelecida e a requisição foi enviada. Se existe um DNS ou não, se o servidor web da página está funcionando ou não, é outra história.

Por causa disso, o squid vem com algumas páginas de erros amigáveis que substituem as do navegador. Tanto na versão 2.x quanto na 3.x.

Leia mais

Servidores    

Dissecando logs no Varnish


Comentários  8
Visualizações  
576.310

Imagine você, sentado no sofá assistindo algo interessante, quando lhe vem de repente na sua mente: “Caramba! Será que meu Varnish está rodando bem o suficiente?” Então se levanta, bebe alguma coisa e se depara com o terminal do servidor. E agora, o que fazer? :-) Logs! Logs e estatísticas são sempre seus amigos para você fazer esse tipo de avaliação: desempenho, resolução de problemas, estatísticas…

O varnish, sendo um ótimo programa, fornece várias ferramentas que te ajudam a ver o que exatamente está acontecendo em seu servidor. Neste tutorial, vamos ver como usar essas ferramentas ao seu favor. Lembre-se que é sempre importante você avaliar o que está acontecendo e mexer para sempre deixar melhor do que estava!

Leia mais

Servidores    

Replicação MySQL


Comentários  49
Visualizações  
603.057

Tem quem goste, tem quem não goste, mas uma coisa é certa: o MySQL é hoje um dos bancos de dados mais utilizados em sistemas Web. Se você é um dos muitos que usam, com certeza deve se preocupar bastante com os dados que estão dentro do banco. A última coisa que queremos é perder os dados, né? :-) Este tutorial mostra um pouco sobre como podemos nos precaver e manter o servidor MySQL funcionando de forma correta e com mais segurança.

A primeira forma de se manter uma segurança adicional do serviço funcionando e de seus dados é a replicação MySQL. A replicação é utilizada para que caso um servidor caia (e se machuque), o HD exploda ou algo parecido, haverá um segundo servidor com todos os dados atualizados e pronto para o uso. Sites sérios que precisam se manter sempre funcionando, com o mínimo de downtime quando algo falha devem utilizar sempre uma forma de replicação.

Leia mais

Servidores    

Uma introdução ao Varnish


Comentários  16
Visualizações  
548.138

Um dos problemas mais clássicos dos sistemas dinâmicos na Web é a carga que estes sistemas causam nos servidores. Diferentemente de servir apenas itens estáticos, os conteúdos dinâmicos precisam interpretar códigos, transformá-los, acessar bancos de dados, entre outras operações que tornam a carga de sistema maior. O Varnish é um software de código aberto que serve como uma camada intermediária entre o usuário e o servidor Web. Ele funciona fazendo cache do conteúdo dinâmico, transformando-o em uma página estática em memória, e então mandando para o usuário. Com isso, para todo usuário seguinte, o Varnish serve a página que já está em cache, ao invés do sistema dinâmico ter que efetuar todo o processamento novamente.

Leia mais

Servidores    

Varnish e backends com IPs dinâmicos


Comentários  1
Visualizações  
518.919

Até as versões atuais do Varnish, existe uma limitação na hora de especificar backends na configuração do VCL: não é possível usar IPs dinâmicos ao definir um backend. Em outras palavras, você não pode ter backends que você não saiba o IP. Em alguns casos, é necessário colocar na definição de backend um hostname, ao invés de um IP fixo. Se por acaso você mudar o IP deste hostname, o Varnish não vai ser atualizado com o novo IP, a não ser que você recompile o VCL (vcl.load e vcl.use). Existe uma solução de contorno (também conhecido como gambiarra) para resolver isso: usar um servidor nginx como intermediador.

Leia mais

Servidores    

Rotação de logs binários no MySQL


Comentários  9
Visualizações  
536.747

Os logs binários do MySQL contém uma espécie de histórico com todas as consultas SQL que são feitas em um servidor. Esses logs servem principalmente para fazer duas coisas: replicar esses dados em um servidor secundário (modelo mestre-escravo) e efetuar backups diferenciais. Muitas vezes acontece da pessoa configurar isso e não tratar esses logs binários. Em um banco de dados com muito movimento, esses logs binários podem crescer assustadoramente e ocupar todo o espaço em disco. Como evitar isso?

Leia mais

Servidores    

Proxy para ambientes mistos


Comentários  8
Visualizações  
440.558

Introdução Ainda me lembro, de uns 10 anos atrás, quando comecei a mexer com programação para Web. Me diverti bastante com o assunto, mas como minha área era realmente Redes e Infraestrutura, acabei rumando para um misto dos dois: Redes e Infraestrutura para sistemas de Internet. Ao longo de minha experiência, trabalhei com gente que fazia pequenos sites, até gente que fazia grandes blogs e portais. Em quase todos os casos, sempre havia ambientes mistos para o desenvolvimento e testes das aplicações. Geralmente são esses três ambientes: Desenvolvimento – Onde realmente os desenvolvedores trabalham, onde o código está sempre cutting-edge e as coisas quebram o tempo todo, consertando-se num passe de mágica. Muitas vezes está localizado na própria máquina do desenvolvedor, dependendo do tamanho do projeto e da equipe. Homologação – Ambiente onde depois de um freeze do site, que a equipe acha que está estável, põe-se o produto para funcionar e fazer vários testes. Este ambiente deve ser fiel ao de produção, pois a validação (como o nome diz) tem que ser feita nele antes de qualquer tipo de lançamento. Produção – Depois de tudo desenvolvido e testado, o ambiente de produção é justamente aquele em que o site vai […]

Leia mais

Servidores    

Apache: Redirecionando domínios antigos para novos


Comentários  4
Visualizações  
37.408

Às vezes queremos redirecionar antigos endereços para novos. Por exemplo, a antiga Página do Eitch tinha todas as suas URLs dentro do subdiretório /eitch/_pagina_, e agora está tudo na raiz. Como eu poderia fazer com que todos os links antigos continuassem a funcionar, agora com a nova URL? No Apache, podemos utilizar o mod_rewrite para fazer isso.

Leia mais