Editar

WordPress no Azure

Azure App Service
Azure Front Door
Azure Kubernetes Service (AKS)
Azure Web Application Firewall
Azure Private Link

O WordPress é um sistema de gestão de conteúdos versátil e popular que é utilizado para criar sites de todos os tamanhos, para várias finalidades. Desde pequenos blogues pessoais a sites empresariais em larga escala e lojas de comércio eletrónico, o WordPress oferece uma variedade de funcionalidades e personalizações que se adequam a diferentes necessidades. No entanto, devido aos diferentes tamanhos e casos de utilização das instalações, o WordPress também tem requisitos de alojamento exclusivos que dependem de fatores como o volume de tráfego e as necessidades de armazenamento.

Este artigo aborda as implementações do WordPress no Azure. Fornece orientações sobre o que considerar e implementar para ajudar a garantir uma instalação segura, dimensionável e económica.

Sugestões gerais de segurança e desempenho do WordPress

Devido à sua enorme popularidade, o WordPress é um alvo para hackers. Os sites que são executados na plataforma podem ser vulneráveis a ameaças de segurança, como software maligno e ataques de phishing. As sugestões seguintes podem ajudá-lo a resolver estes riscos ao criar uma instalação do WordPress mais segura e com melhor desempenho.

Quer utilize uma máquina virtual (VM) ou Serviço de Aplicações do Azure para a sua arquitetura de alojamento ou se utiliza outra solução, estas sugestões são aplicáveis.

Utilizar o Azure Firewall de Aplicações Web

Firewall de Aplicações Web ajuda a proteger o seu site contra ataques comuns baseados na Web. Funciona como um filtro entre o seu site e a Internet. Nesta capacidade, Firewall de Aplicações Web monitoriza o tráfego de entrada e bloqueia pedidos maliciosos que podem explorar vulnerabilidades no código do seu site. Firewall de Aplicações Web ajuda a proteger o seu site de vários ataques, incluindo injeções de SQL, scripting entre sites (XSS) e falsificação de pedidos entre sites (CSRF).

Deve utilizar Firewall de Aplicações Web no Azure Front Door para obter proteção centralizada para as suas aplicações Web. O Azure Front Door é uma rede de entrega de conteúdos que ajuda a fornecer aos utilizadores de todo o mundo acesso rápido, fiável e seguro aos conteúdos Web estáticos e dinâmicos das suas aplicações. Implementar Firewall de Aplicações Web no Azure Front Door ajuda a defender os seus serviços Web contra exploits e vulnerabilidades comuns.

Remover plug-ins e temas não utilizados

Deve remover os plug-ins e temas não utilizados da instalação do WordPress. Este passo é importante para ajudar a manter o seu site do WordPress seguro e otimizar o seu desempenho. Mesmo um plug-in ou tema que não utiliza ativamente pode representar um risco de segurança ao fornecer um ponto de entrada para os hackers explorarem vulnerabilidades em código desatualizado ou não incluído. Além disso, ter muitos plug-ins e temas instalados no seu site pode abrandar o desempenho ao aumentar o tempo de carga e a utilização de recursos do servidor.

Descarregar conteúdo estático longe do processador PHP

Para reduzir a carga no processador PHP, deve descarregar conteúdo estático, como imagens, vídeos e ficheiros CSS. Descarregar conteúdo estático ajuda a otimizar o desempenho do site e a reduzir a carga do servidor. Quando um utilizador visita um site, o servidor processa código PHP e gera conteúdo HTML dinamicamente. Este processo consome muitos recursos. No entanto, o conteúdo estático não muda frequentemente, pelo que pode servir conteúdo estático diretamente a partir de um sistema de ficheiros de servidor ou de uma rede de entrega de conteúdos. Ao descarregar estes recursos, pode reduzir a carga na CPU e na RAM do servidor. Esta configuração resulta em tempos de carregamento de páginas mais rápidos, desempenho melhorado do site e uma melhor experiência de utilizador.

Também existem outras vantagens em servir recursos estáticos a partir de um serviço de rede de entrega de conteúdos, como o Azure Front Door. Por exemplo, quando descarrega conteúdo estático, pode reduzir a latência e aumentar a velocidade do site ao colocar os servidores próximos das localizações geográficas dos utilizadores.

Nota

Para ajudar a proteger uma origem com o Azure Front Door através de um ponto final privado, tem de utilizar o SKU Premium do Azure Front Door. Para obter mais informações, consulte Proteger a sua origem com Private Link.

Invalidação da cache da rede de entrega de conteúdos

Para grandes instalações do WordPress que utilizam uma rede de entrega de conteúdos, como o Azure Front Door ou a Rede de Entrega de Conteúdos do Azure, tem de implementar a lógica de invalidação da cache. Sempre que ocorrer um novo evento, tem de invalidar a cache na rede de entrega de conteúdos da página afetada. Exemplos de eventos incluem a publicação de um novo artigo, a atualização de uma página existente e a adição de um comentário. A lógica de invalidação tem de localizar todos os URLs afetados pela alteração. Especificamente, a lógica precisa de localizar e invalidar páginas geradas dinamicamente, como categorias e arquivos, na cache da rede de entrega de conteúdos. Com alguns temas e plug-ins instalados, até mesmo uma pequena alteração pode afetar todas as páginas.

Uma forma fácil de implementar a lógica de deteção é utilizar um plug-in que permite acionar manualmente a invalidação da cache para todos os URLs. No entanto, invalidar todos os URLs ao mesmo tempo pode fazer com que o tráfego seja aumentado no seu site do WordPress. Para obter um exemplo de lógica de invalidação de cache para a Rede de Entrega de Conteúdos, veja Remover a cache do Azure e implementar a implementação do hook no GitHub.

Implementar a autenticação de dois fatores

A autenticação de dois fatores aumenta a segurança da sua instalação e ajuda a proteger as suas contas de administrador contra ataques e acessos não autorizados. Para tirar partido da autenticação de dois fatores, pode utilizar um plug-in, como o plug-in de autenticação miniOrange. Entre outras funcionalidades, este plug-in fornece uma forma de configurar o Microsoft Authenticator como um método de autenticação de dois fatores para os utilizadores que iniciam sessão no seu site do WordPress como administradores.

Desativar o acesso XML-RPC

O XML-RPC é um protocolo remoto que fornece uma forma de as aplicações de terceiros interagirem com o servidor do seu site. No entanto, este protocolo também é um destino comum para hackers, que o utilizam para lançar ataques de força bruta ou explorar vulnerabilidades no seu sistema de gestão de conteúdos. Se utilizar o Azure Front Door, pode desativar o XML-RPC ao configurar uma regra de negação para URLs com o formato /xmlrpc.php.

Restringir o acesso ao painel de administração

Por predefinição, o painel de administração do WordPress está acessível a qualquer pessoa com as credenciais da sua conta e ao URL correto, que tem o formato /wp-login.php ou /wp-admin. Como resultado, os hackers e outros atores maliciosos podem tentar adivinhar as suas credenciais, realizar um sequestro de sessão, lançar ataques de força bruta ou explorar vulnerabilidades no WordPress para obter acesso.

Firewall de Aplicações Web podem ajudar a evitar alguns ataques, mas muitos administradores preferem restringir o acesso ao painel de administração do WordPress ao nível da rede.

Por exemplo, pode bloquear o acesso a URLs privados no Azure Front Door. Em seguida, pode utilizar Gateway de Aplicação do Azure para fornecer acesso interno a partir de uma rede privada que utiliza uma topologia hub-and-spoke. As instâncias internas do Gateway de Aplicação suportam regras de Firewall de Aplicações Web e regras do Azure Front Door. Estas regras ajudam a proteger a sua instalação do WordPress contra ataques internos. Se conseguir tolerar o risco de um ataque interno, pode utilizar uma instância interna de Balanceador de Carga do Azure em vez de Gateway de Aplicação. Balanceador de Carga funciona na camada quatro do modelo Open Systems Interconnection (OSI).

Diagrama de arquitetura que mostra o acesso público bloqueado a um painel de administração do WordPress. Uma VPN numa topologia hub-and-spoke fornece acesso interno.

Transfira um ficheiro do Visio desta arquitetura.

Determinados plug-ins do WordPress requerem URLs com o formato /wp-admin/admin-ajax.php para serem acessíveis publicamente e removidos desta regra de negação.

Armazenar segredos no Azure Key Vault

Para ajudar a garantir a segurança das implementações do WordPress no Azure, recomendamos que armazene segredos, como palavras-passe de base de dados e certificados TLS ou SSL, no Key Vault. Este serviço baseado na cloud ajuda a fornecer armazenamento e gestão seguros de chaves criptográficas, certificados e segredos.

Key Vault ajuda as suas aplicações e serviços autorizados a aceder em segurança a segredos. Não precisa de armazená-los em texto simples na imagem de contentor do WordPress ou no código da aplicação.

Otimizar o desempenho

Para otimizar o desempenho do WordPress, deve ajustar várias definições e utilizar plug-ins. Os seguintes plug-ins podem ser úteis para depurar instalações do WordPress:

  • O Monitor de Consultas fornece uma discriminação do tempo gasto em cada consulta SQL e outras ações. Os exemplos incluem erros PHP, hooks e ações, blocos de editor de blocos, scripts em fila e folhas de estilo e chamadas à API HTTP.
  • O Laps fornece uma descrição detalhada da forma como o tempo é gasto no carregamento de páginas do WordPress.

Desafios de alojamento do WordPress

Com a arquitetura da aplicação WordPress, existem vários desafios de alojamento, incluindo:

  • Escalabilidade. Uma arquitetura de alojamento tem de ser capaz de aumentar horizontalmente durante os períodos de tráfego de pico.
  • Armazenamento ReadWriteMany (RWX). Por predefinição, o WordPress armazena todos os recursos estáticos, plug-ins e código fonte do tema no /wp-content/ diretório. Durante um aumento horizontal, todos os nós têm de ser capazes de ler e escrever nesse diretório.
  • As operações de entrada/saída por segundo (IOPS). O WordPress consiste em mais de 1000 pequenos ficheiros .php que o processador PHP referencia, carrega e executa durante os pedidos recebidos. Com alguns protocolos, carregar vários ficheiros pequenos pode aumentar a sobrecarga. Em seguida, o desempenho geral é mais lento do que carregar um ficheiro com o mesmo tamanho total. Como resultado, a solução de armazenamento tem de suportar IOPS elevado.
  • Invalidação da cache. Quando existe uma nova atividade na aplicação, como quando publica um novo artigo, tem de invalidar a cache em todos os nós.
  • O tempo para criar a cache. Para o primeiro utilizador de um determinado nó, o tempo de resposta pode ser lento até a cache ser criada.

Opções de alojamento do WordPress no Azure

O WordPress pode ser executado em Serviço de Aplicações, Azure Kubernetes Service (AKS) e Máquinas Virtuais do Azure. O tamanho da instalação é um fator importante no anfitrião que selecionar. Para instalações pequenas e médias, Serviço de Aplicações é uma opção económica. No entanto, para instalações maiores, deve considerar o alojamento do AKS ou da VM.

WordPress no Serviço de Aplicações

A Microsoft fornece uma solução totalmente gerida para executar o WordPress em VMs Serviço de Aplicações no Linux. Para obter informações detalhadas, veja Criar um site do WordPress. Esta solução:

  • Foi concebido para o ajudar a implementar uma instalação do WordPress de forma rápida e fácil.
  • É ideal para instalações do WordPress de pequena a média dimensão.
  • Fornece a escalabilidade, fiabilidade e segurança da plataforma do Azure sem a necessidade de uma configuração ou gestão complexa.
  • Efetua atualizações automáticas, cópias de segurança e monitorização para ajudar a garantir que o seu site está sempre disponível.

Para obter mais informações, consulte WordPress no Serviço de Aplicações.

Cargas de trabalho intensivas de armazenamento

As grandes instalações do WordPress podem ser intensivas em termos de armazenamento. Nestes cenários, deve utilizar uma solução de armazenamento com uma classe de IOPS elevada e baixa latência. Recomendamos Azure NetApp Files. Azure NetApp Files pode suportar implementações do WordPress com armazenamento intensivo. Também fornece funcionalidades adicionais, como proteção de dados, cópia de segurança e restauro, replicação entre regiões e recuperação após desastre.

Para uma implementação de contentor do WordPress, deve utilizar o AKS. Com Azure NetApp Files, implemente o armazenamento através de um controlador csi (Container Storage Interface) do Kubernetes. Azure NetApp Files oferece um ReadWriteMany modo para que todos os nós possam ler e escrever no mesmo armazenamento. Para obter mais informações, veja Arquitetura do WordPress do AKS.

Para uma grande instalação do WordPress que é executada em VMs, deve montar Azure NetApp Files através do protocolo NFS (network file system). Para obter mais informações, veja WordPress em máquinas virtuais.

Contentor Imutável do WordPress

Uma abordagem alternativa aos métodos de alojamento tradicionais é implementar o WordPress num contentor imutável. Esta abordagem tem vantagens e desvantagens. O código fonte e todos os recursos dentro de contentores imutáveis são fixos e não podem ser modificados após a implementação. Tem de fazer todas as alterações, incluindo novas instalações de plug-in ou atualização de núcleos do WordPress, numa nova versão da imagem de contentor. Embora esta abordagem ajude a garantir a consistência e simplifica as reversões, tem de criar um pipeline de implementação para fazer alterações. Além disso, os contentores imutáveis podem ser limitados nas opções de armazenamento persistente que oferecem. Poderá ter de desenvolver uma solução para processar ficheiros de multimédia e outros dados. Apesar destas limitações, as implementações de contentores imutáveis oferecem benefícios em termos de segurança, escalabilidade e portabilidade.

Pode implementar uma versão imutável em contentores do WordPress em várias plataformas, incluindo o Azure Container Apps, o AKS e Serviço de Aplicações com uma imagem de contentor personalizada. Pode alojar a imagem de contentor no Azure Container Registry.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuintes.

Autor principal:

Outros contribuidores:

  • Adrian Calinescu | Arquiteto Sénior de Soluções cloud

Para ver perfis do LinkedIn não públicos, inicie sessão no LinkedIn.

Passos seguintes

Documentação do produto:

Módulos de preparação: