Cacheando informações do WordPress com Redis

redis

redis

Finalizei o meu post anterior com a promessa de trazer um post sobre o uso do Redis para fazer o cacheamento de informações do WordPress. É preciso deixar bem claro que estes procedimentos podem ser úteis para diversas configurações do Redis como cacheamento, irei apenas utilizar de exemplo o WordPress. Utilizo o WordPress como exemplo apenas por ser um CMS bem popular e acredito que tem muita gente que vai gostar de ter estas dicas para configurar seu WordPress e deixar ele voando!

Para os que ainda estão um pouco perdidos com relação ao que é o Redis, volto a explicar. O Redis é um servidor de estruturas de dados que pode ser usado como um servidor de banco de dados ou utilizado em paralelo com o MySQL para aumentar o seu desempenho.

Nele podemos gravar informações em Strings, Integers, Lists, Sets, Ordered Sets e Hash Tables.

No exemplo que iremos montar abaixo ele irá funcionar como um cache persistente. Quando uma uma página for carregada pela primeira vez a query do banco será executada no servidor. Neste momento o Redis irá cachear a query. Após isto qualquer usuário que acessar esta mesma página terá o resultado vindo do Redis, sem a necessidade de consultar o banco novamente.

Mas chega de lenga lenga e vamos ao que realmente interessa. Configurar esta belezinha. Para isto vou utilizar um instância Cloud com Ubuntu 14.04 que tenho aqui na DialHost

Instalando o Redis

Para a instalação dele com o WordPress vamos precisar de dois packages em seu servidor: o redis-server e o php-redis ( Neste caso irei utilizar a branch php7 para conseguir configurar com o PHP 7). Para isto já estarei logado como root.

1. Instalando o Redis server

 

2. Instalando o php-redis

 

3. Movendo ele para o /etc/

 

4. Instalando e configurando o módulo

 

5. Habilitando a extensão no php.ini e dando o restart no apache

6. Agora é só testar a versão do seu módulo.

Configurando o Redis como Cache

Como nosso objetivo para este projeto é cachear as requisições do WordPress vamos configurá-lo como cache. Para isto temos que seguir os passos a seguir.

1. Vamos adicionar as linhas abaixo no arquivo /etc/redis/redis.conf

Linhas para adicionar:

 

Comando para adicionar:

 

Após fazer a inserção das linhas salve e feche o arquivo.

Configurando o seu WordPress

Agora que o Redis já está rodando, é hora de configurar ele para trabalhar junto com o WordPress.

1. Para isto Vamos precisar de baixar o script object-cache.php para a pasta wp-content.

 

2. Agora precisamos ir no wp-config.php e configurá-lo com a chave de cache que terá o nome do seu site além de habilitar o cache persistent com o Redis. Para isto adicione as duas regras abaixo, ao final da seção “* Authentication Unique Keys and Salts”

 

3. Por fim, salve o arquivo e reinicie os serviços do Redis, o Apache e o PHP7-fpm.

Conclusões

Após configurar a integração do Redis, podemos reparar um ganho no uso de recursos e na velocidade de carregamento da página. Como dito no começo deste artigo isto é porque não teremos que consultar o nosso banco de dados toda hora mais. O Cache vai agilizar, retornando todas as informações que ele cacheou em sua memória. Caso você queira monitorar o funcionamento do seu Redis basta usar o comando redis-cli

 

 

Felipe Moraes
Felipe Moraes

Desde pequeno eu adorei tecnologia e este sentimento me fez estudar e trabalhar com desenvolvimento, design de interfaces e interação. Esta vontade de melhorar e aprender com a tecnologia me fez estar aqui na DialHost desde 2012.

Cloud computing para grandes sites em WordPress

Cloud para grandes sites em WordPress

Cloud para grandes sites em WordPress

Estamos em uma era que não podemos negar o poder do WordPress em administrar sites. Muito além dos antigos blogs que víamos sempre por aí, grandes sites, portais e até mesmos lojas
virtuais já podem, e estão utilizando desta plataforma para se estabelecerem online. É o caso de sites como o do ministério da cultura, USP (Universidade de São Paulo) e o próprio iMasters.

Estes tipos de sites tem em comum alguns pontos que não permitem mais funcionar normalmente dentro de uma estrutura compartilhada. A utilização de plugins para controle
e segurança do WordPress e o nível de personalização do próprio WordPress para atender as demandas destes tipos de projetos podem ser um fator a se analisar. Mas sem dúvida o
fluxo de processos, acessos e atualizações de banco de dados que superam, e muito, qualquer estrutura fornecida por planos comuns de hospedagem são o maior fator a se considerar aqui.

Estrutura Dedicada do cloud

Ao contrário das hospedagens compartilhadas uma estrutura em cloud computing permite a disponibilização de recursos dedicados ao projeto. Isto quer dizer, mais segurança, estabilidade e desempenho para o projeto que não será influenciado por outros sites que estão no mesmo servidor.

Nesta estrutura é possível pensar de forma escalada os recursos que vão atender a esta alta demanda do projeto. Sejam recursos para o fluxo normal de utilização do site ou para um momento de pico o cloud computing permite aos administradores de desenvolvedores se precaverem contra ultrapassar o uso de recursos como, memória, espaço em disco e VCPUs conforme o crescimento do uso destes sites.

O patamar de informações que circulam neste tipo de projeto precisa estar muito bem alinhado com os recursos aplicados ao servidor que o sustenta. Um erro aqui pode ser o fim da estabilidade do site.

Separação de banco de dados

O WordPress, como um bom CMS, realiza o controle de informações dentro de banco de dados. Assim, pode não parecer tão claro mas, se preocupar com o acesso, estabilidade e cacheamento desta base de dados é o fator que deve estar no top 1 das preocupações do seu projeto.

A Notícia boa é que com uma estrutura em cloud é possível criar um cluster de banco de dados. Este cluster é responsável por separar em diferentes instâncias sua aplicação web (que vai possuir acesso dos seus usuário) e a escrita/leitura dos dados no banco de dados que serão feitas pela aplicação. Em um post feito no Blog da DialHost expliquei sobre o funcionamento do cluster de banco de dados e como esta arquitetura balanceia a quantidade de requisições ao banco.

Balanceando as cargas de acesso

Do lado da aplicação é possível balancear os processos. Com o balanço, sua rede direcionará os acessos ao WordPress para instâncias separadas de forma uniforme. Por fim você otimizará a utilização dos recursos e evitará sobrecargas que poderiam ocorrer em uma instância única.

Cacheamento dos dados em nível de servidor com Redis

O Redis é um servidor de estruturas de dados que pode ser usado como um servidor de banco de dados. Ele também pode ser utilizado em paralelo com o MySQL para aumentar o seu desempenho. Ele é recomendado para ser configurado como cache. Desta forma ele é capaz de aliviar o consumo que as queries de banco de dados usam para renderizar a página em WordPress.

Como resultado teremos um WordPress renderizado muito mais rápido, o consumo bem menor dos bancos de dados e cache persistente e ajustável.

Como podem ver, este artigo não foca mais naquelas simples soluções baseadas em otimizações feitas por plugins do WordPress que funcionam em diversos blogs menores. Aqui estamos falando  em soluções para
grandes sites que tem acessos e processos bem mais robustos. Nestes casos ter o controle total das requisições, rede, banco de dados são de fato os maiores responsáveis pela estabilidade do site.

Para o próximo artigo, vou escrever sobre a configuração do Redis para manter o cacheamento das informações do WordPress. Então até lá.

Felipe Moraes
Felipe Moraes

Desde pequeno eu adorei tecnologia e este sentimento me fez estudar e trabalhar com desenvolvimento, design de interfaces e interação. Esta vontade de melhorar e aprender com a tecnologia me fez estar aqui na DialHost desde 2012.

Proteja seu WordPress com essas incríveis dicas de segurança

Password hashing

Imagem ilustrativa

Garantir proteção ao seu WordPress é regra básica em qualquer situação e em qualquer tipo de projeto. Imagina um dia de trabalho super produtivo e do “nada” tudo desaparece, seu site cai ou fica a maior bagunça no seu servidor. Esse tipo de problema é de deixar qualquer desenvolvedor de cabelos em pé e desesperado – isso no caso de você não ter um backup de tudo. A segurança no WordPress deve estar presente durante todo o levantamento de requisitos de qualquer site. Utilizando técnicas, métodos e até plugins, você consegue garantir que seu WordPress esteja blindado contra os tipos mais comuns e diferentes de ataques e problemas de segurança. Por isso, vamos listar agora dicas incríveis para a segurança no WordPress.

Admin_ID difente de 1
Sempre que se realiza uma nova instalação WordPress, o primeiro usuário criado (comumente o admin) recebe o ID igual a 1 – o ID é referente ao usuário no banco de dados. Perceba que, nós – usuários com um conhecimento maior sobre a plataforma -, já sabemos que o ID é sempre 1. Logo, alguém mal intencionado pode direcionar um ataque a este usuário.

Alterar o ID do usuário não é algo tão complicado, mas você precisa ter um nível considerável em banco de dados. Do contrário, uma simples alteração através de queries de update pode invalidar seu usuário e até derrubar seu site. O ID que precisa ser alterado, referente ao usuário admin, deve ser atualizado em pelo menos duas tabelas por padrão: wp_user e wp_usermeta.

Senhas mais difíceis
Se você não quer perder seu usuário e também o seu site, o mínimo é manter senhas seguras e fortes para os seus usuários. O WordPress tem um analisador de senha, onde você pode saber qual a força da senha digitada. Para ter senhas fortes você deve sempre recorrer a um gerador de senhas. Então esqueça senhas como: 123456 ou a1b2c3d4e5.

Backup do seu banco de dados
Manter um cronograma para realizar backups do seu site é importante. Se algo deu errado, quebrou ou desconfigurou – a restauração do banco de dados por meio de um backup garante todo o seu trabalho e conteúdo do seu site. Faça backups manuais ou utilize plugins que façam esse trabalho. Existe plugin até para fazer backup junto com o Dropbox.

Gerencie o login e tudo relacionado aos usuários
Você pode se livrar de ataques a página de login apenas escondendo a mesma. Dessa forma, o login não poderá ser feito por meio da página padrão, wp-login. Também é válido retirar a opção de recuperação de senha. Um furo inocente, mas que nas mãos de quem tem conhecimento muito pode fazer, é liberar acesso ao painel por parte dos usuários do tipo assinantes.

Secret keys
O WordPress trabalha com secret keys para a criptografia de seus cookies. As secret keys, que ficam localizadas no arquivo wp-config.php, devem ser setadas de forma correta. Cada chave é um conjunto com letras, números e caracteres especiais, o que as torna difíceis de serem descobertas. Acesse o Secret Key Generation Tool do WordPress para atualizar as suas.

Limitar tentativas de login
No WordPress existe plugin para fazer tudo. Então, utilizar plugins para limitar tentativas de login e o tempo de espera é mais do que útil. Defina um número limite para cada tentativa de login, bem como um intervalo de tempo para bloquear as tentativas de login. É possível, também, armazenar o IP da máquina do usuário que tenta realizar login e então, bloqueá-lo.

Permissão de acesso por IP
Se o sistema deve permitir o login derivado apenas de dentro da empresa (IP fixo), você deve definir permissões por meio de IP. Aqui estou dando um exemplo de como você pode gerenciar o acesso – tanto ao login, quanto ao site, derivados de um único local. Trabalhar com gerenciamento de IPs é interessante para garantir a segurança e acesso ao seu sistema.

Permissão de arquivos
Desenvolvendo com WordPress, ou não, cuidar das permissões para pastas e arquivos é requisito essencial à segurança de seu servidor. Por padrão, as pastas devem responder ao padrão 755 e os arquivos 644. No WordPress você deve estudar e realizar permissões diferenciadas para pastas e arquivos. Tornando-os inacessíveis a partir de suas permissões.

Ocultar ou personalizar mensagens de erro no login
Cuidado básico, mas que muitos não percebem sua importância: oculte ou personalize as mensagens de erro do sistema de login. Oculte as mensagens de erro que informam que o e-mail não existe, ou que o nome de usuário é inválido e que a senha digitada está incorreta. Com tais informações qualquer um já tem muitas pistas que ajudam o seu acesso.

Configurações no .HTACCESS
Utilizando instruções específicas você consegue proteger pastas, arquivos e até o próprio arquivo .htaccess. Proteja qualquer tipo de acesso externo ao wp-config.php e também a listagem de diretórios dentro da URL. Permita que apenas imagens e arquivos sem extensão .php sejam acessados dentro da pasta wp-content. Tudo isso você consegue apenas por meio do .htaccess.

Segurança nunca é demais para o seu WordPress. Com as dicas que passamos aqui você pode:

  • Gerenciar acesso por IP;
  • Criptografia de cookies confiável;
  • Fugir do óbvio alterando o ID para o admin – este que requer conhecimento elevado em WordPress e banco de dados.

—–

Artigo publicado no iMasters.

DialHost
DialHost

Contamos com nosso DataCenter no Brasil de alta qualidade, estabilidade e confiança para hospedar seu site. Utilize poderosas ferramentas para otimizar o uso do seu serviço e seja sempre atendido de forma rápida e clara pelo nosso atendimento 24h.

Três ferramentas de cache para acelerar seu WordPress

wordpress wallstreet

Imagem: Marca WordPress

Acelerar seu site em WordPress certamente traz grandes benefícios. Além de ser uma experiência favorável para o usuário, pode ser um fator determinante para o posicionamento na página de buscas do Google. Por isso, aqui vão algumas dicas de como utilizar plugins de cache para aumentar a velocidade de entrega de conteúdo na sua página!

O que é cache e como ele pode trazer benefícios

Cache é uma cópia de um conteúdo que costuma ser gerado dinamicamente, servindo a requisições subsequentes de maneira mais rápida, evitando o reprocessamento desnecessário de conteúdo.

O objetivo do cache é reduzir o custo de acesso de sites. Existem técnicas que aumentam a performance de um site exercendo regras sobre os navegadores para tipos de arquivos diferentes, como de imagens, que raramente são alterados, podendo ter tempo de cache alto. Esse tipo de cache é armazenado no browser.

Já conteúdo dinâmico tem seu cache armazenado diretamente no servidor web, pois é necessário um controle de alterações mais eficaz.

O cache pode beneficiar o site reduzindo a demanda de recursos em cada acesso único e, em casos de cache client side, também pode reduzir o conteúdo entregue.

O tempo e a quantidade ideal de cache dependem de cada projeto, pois cada conteúdo pode ter um tipo diferente de cache conforme as regras de negócio do site.

Por que plug-ins de cache?

Um plug-in de cache é um fator muito importante em um blog de sucesso. Se você utiliza o WordPress, a cada visita esse CMS irá passar por um processo de montagem da página ligado pela conexão com o banco de dados e montagem do código HTML.

Quando um site recebe um tráfego pesado, uma carga significativa no servidor pode retardar o carregamento das páginas e até mesmo torná-lo indisponível. Se o cache estiver habilitado, apenas o primeiro visitante irá passar por esse processo. Depois, todos os demais internautas irão visitar páginas HTML que já estão prontas, e o processo será muito mais rápido.

Existem diversos plug-ins de cache que aceleram a sua página em WordPress. Neste artigo, vamos falar sobre três ferramentas que quando utilizadas em conjunto podem aumentar ainda mais a velocidade de sites em WP.

OPcode

O OPCode é uma extensão do PHP que foi gerada para aumentar a performance de execução de código ao ser processado no servidor. Após a abertura do plano, que era proprietário, a Zend introduziu-o ao PHP e tem mostrado suporte para o projeto.

Toda vez que um script é executado, a engine do PHP precisa compilar o código fonte em algo que a linguagem de máquina possa entender, resultando em um OPcode. Quando uma nova requisição é realizada, antes de o PHP compilar o código fonte, o software de cache intercepta e verifica se o OPcode do script já existe no cache. Caso não exista, o sistema de cache passa para o PHP Engine gerar o OPcode e o armazena no cache.

Nas requisições subsequentes para o mesmo script, o OPcode será obtido a partir do cache, e não será necessário ser compilado pelo Engine do PHP novamente. Esse processo economiza de forma considerável o processamento de CPU no servidor.

É claro que, se houver mudanças no código fonte em um script que já tenha o OPcode no cache, a mudança será identificada pelo sistema, que irá proceder com a devida atualização.

W3 Total Cache

Este plug-in melhora a experiência do usuário no seu site, aumentando o desempenho do servidor e reduzindo os tempos de download. Com ele, você tem uma infinidade de opções de otimização, como minimização de código fonte e integração com sua rede de distribuição de conteúdo (CDN).

Com o W3 Total Cache instalado, seu blog pode carregar 10 vezes mais rápido e economizar até 80% de largura de banda. O tempo de inatividade é reduzido e a qualidade é drasticamente melhorada.

Importante: Antes de instalar o W3 Total Cache, é necessário que você remova ou desinstale todos os plug-ins de cache que esteja usando (por exemplo, o WP Super Cache). Se você tiver algum plugin de cache correndo, é natural que tenha problemas na ativação.

Varnish

Varnish é um servidor HTTP usado como proxy de cache para conteúdo web. Ele atua de forma transparente, independentemente de linguagens de programação e bancos de dados, pois age diretamente na camada HTTP, utilizando somente cache de conteúdo já gerado.

Basicamente, quando um cliente acessa um site que possui um Varnish, ele acessa o Varnish, que confere se já possui cache do conteúdo acessado. Se tiver, entrega o conteúdo imediatamente. Caso contrário, busca o conteúdo no servidor original (que fará o processamento), armazena-o em cache e entrega o retorno ao usuário inicial.

Após esse armazenamento, o fluxo é repetido em novos acessos, com a vantagem de que o cache fica armazenado na memória RAM do servidor, aumentando a velocidade de entrega de conteúdo.

O Varnish pode aumentar a velocidade de 300 a 1.000 vezes, principalmente de elementos estáticos, e diminuir bastante a utilização de memória, deixando para o Apache somente a execução de conteúdo dinâmico, como scripts PHP e CGI.

A implantação do Varnish não requer mudanças na programação do site. Caso ele rode no mesmo servidor que o Apache, existe a necessidade de ajuste das portas de comunicação e uso de um IP adicional. Também pode ser utilizado para balancear a carga entre dois ou mais servidores web.

As técnicas de cache são usadas para melhorar o desempenho do site, ao preservar recursos do servidor, permitindo que ele possa entregar o conteúdo a mais usuários. Planejar e oferecer acesso rápido aos usuários do seu site é um dos passos essenciais para o sucesso da sua página!

—–

Artigo de Andressa Dorneles, publicado originalmente no iMasters.

DialHost
DialHost

Contamos com nosso DataCenter no Brasil de alta qualidade, estabilidade e confiança para hospedar seu site. Utilize poderosas ferramentas para otimizar o uso do seu serviço e seja sempre atendido de forma rápida e clara pelo nosso atendimento 24h.

WordPress 3.6 Release OverView

WordPress 3.6 release overview . 20 de setembro de 2013 . São Paulo

Chamada para o WordPress 3.6 release overview

No dia 20 deste mês (setembro), teremos o primeiro evento dedicado às atualizações do WordPress, realizado no Brasil. O evento organizado pela Apiki, e que conta com o patrocínio da DialHost, irá discutir junto a um grupo seleto de convidados sobre as novidades do WordPress 3.6 e o futuro da ferramenta no mercado.

Atualmente, o WordPress é a plataforma de desenvolvimento de site dinâmicos e publicação de conteúdo mais utilizada no mundo e entre duas e três vezes ao ano é lançada uma nova atualização que trazem mudanças e correções significativas no seu sistema. Para apresentar estas novas versões que estão chegando, nós apoiamos a ideia da Apiki na organização do primeiro de muitos WordPress Release Overview. Neste evento serão retratados assuntos como as novidades que ainda virão em 2013 e palestras como:

  1. Menu. Nova experiência de uso.
    Com Mayara Alanna
  2. Novo design. Ousadia e alegria.
    Com Gabriel Fernandes e José Guilherme
  3. HTML 5. As novas marcações semântica.
    Com Yago Silva e Luan Ramos
  4. Auto save, Post lock e In-line Login. O que essa tríade representa?
    Com Mayara Alanna
  5. Miscelânea de novas funções.
    Com Daniel Antunes

O Evento ocorrerá em São Paulo. Para os interessados em mais detalhes sobre o WordPress 3.6 Release OverView ou em participar dos outros eventos que virão é possível se cadastrar através do site http://apiki.com/wordpress-3.6-release-overview.html. Mas lembramos que as vagas são limitadas e os participantes serão selecionados pelos organizadores.

DialHost
DialHost

Contamos com nosso DataCenter no Brasil de alta qualidade, estabilidade e confiança para hospedar seu site. Utilize poderosas ferramentas para otimizar o uso do seu serviço e seja sempre atendido de forma rápida e clara pelo nosso atendimento 24h.