WordPress no Azure

Serviço de aplicativo do Azure
Porta da frente do Azure
AKS (Serviço de Kubernetes do Azure)
Firewall do aplicativo Web do Azure
Link Privado do Azure

O WordPress é um sistema de gerenciamento de conteúdo versátil e popular que é usado para criar sites de todos os tamanhos, para vários fins. Desde pequenos blogs pessoais até sites corporativos de grande escala e lojas de comércio eletrônico, o WordPress oferece uma variedade de funcionalidades e personalizações para atender a diferentes necessidades. No entanto, devido aos diferentes tamanhos e casos de uso de suas instalações, o WordPress também tem requisitos de hospedagem exclusivos que dependem de fatores como volume de tráfego e necessidades de armazenamento.

Este artigo aborda implantações do WordPress no Azure. Ele fornece orientação sobre o que considerar e implementar para ajudar a garantir uma instalação segura, escalável e econômica.

Dicas gerais de segurança e desempenho do WordPress

Por causa de sua enorme popularidade, o WordPress é um alvo atraente para hackers. Os sites executados na plataforma podem ficar vulneráveis a ameaças de segurança, como malware e ataques de phishing. As dicas a seguir podem ajudá-lo a lidar com esses riscos, criando uma instalação do WordPress mais segura e com melhor desempenho.

Se você usa uma máquina virtual (VM) ou o Serviço de Aplicativo do Azure para sua arquitetura de hospedagem, ou se usa alguma outra solução, essas dicas serão úteis.

Use o Firewall de Aplicativo Web do Azure

O Firewall de Aplicativo Web ajuda a proteger seu site contra ataques comuns baseados na Web. Ele atua como um filtro entre o seu site e a Internet. Nessa capacidade, o Firewall de Aplicativo Web monitora o tráfego de entrada e bloqueia solicitações maliciosas que podem explorar vulnerabilidades no código do seu site. O Firewall de Aplicativo Web ajuda a proteger seu site contra uma série de ataques, incluindo injeções de SQL, scripts entre sites (XSS) e falsificação de pedidos entre sites (CSRF).

Você deve usar o Firewall de Aplicativo Web no Azure Front Door para obter proteção centralizada para seus aplicativos Web. O Azure Front Door é uma rede de fornecimento de conteúdo que ajuda usuários em todo o mundo a obter acesso seguro, confiável e rápido ao conteúdo Web estático e dinâmico dos seus aplicativos. A implantação do Firewall de Aplicativo Web no Azure Front Door ajuda a defender seus serviços Web contra abusos e vulnerabilidades comuns.

Remova plug-ins e temas não utilizados

Você deve remover plug-ins e temas não utilizados da sua instalação do WordPress. Esta etapa é importante para ajudar a manter seu site do WordPress seguro e otimizar seu desempenho. Mesmo um plug-in ou tema que você não usa ativamente pode representar um risco de segurança, fornecendo um ponto de entrada para hackers explorarem vulnerabilidades em código desatualizado ou sem manutenção. Além disso, ter muitos plug-ins e temas instalados em seu site pode diminuir seu desempenho, aumentando o tempo de carregamento e o uso de recursos do servidor.

Descarregue conteúdo estático longe do processador PHP

Para reduzir a carga no processador PHP, você deve descarregar conteúdo estático, como imagens, vídeos e arquivos CSS. O descarregamento de conteúdo estático ajuda a otimizar o desempenho do site e reduzir a carga do servidor. Quando um usuário visita um site, o servidor processa o código PHP e gera conteúdo HTML dinamicamente. Esse processo consome muitos recursos. No entanto, o conteúdo estático não é alterado com frequência, portanto, você pode veicular conteúdo estático diretamente de um sistema de arquivos do servidor ou de uma rede de entrega de conteúdo. Ao descarregar esses ativos, você pode reduzir a carga na CPU e na RAM do servidor. Essa configuração resulta em tempos de carregamento de página mais rápidos, melhor desempenho do site e uma melhor experiência do usuário.

Há também outros benefícios em servir recursos estáticos de um serviço de rede de entrega de conteúdo, como o Azure Front Door. Por exemplo, ao descarregar conteúdo estático, você pode reduzir a latência e aumentar a velocidade do site colocando os servidores perto das localizações geográficas dos usuários.

Observação

Para ajudar a proteger uma origem com o Azure Front Door usando um ponto de extremidade privado, você precisa usar a SKU Premium do Azure Front Door. Para obter mais informações, consulte Proteger sua origem com o Link privado.

Invalidação de cache da rede de distribuição de conteúdo

Para grandes instalações do WordPress que usam uma rede de fornecimento de conteúdo, como o Azure Front Door ou a rede de distribuição de conteúdo do Azure, você precisa implementar a lógica de invalidação de cache. Sempre que ocorrer um novo evento, você precisará invalidar o cache na rede de distribuição de conteúdo 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 precisa localizar todas as URLs que a alteração afeta. Especificamente, a lógica precisa localizar e invalidar páginas geradas dinamicamente, como categorias e arquivos, no cache da rede de distribuição de conteúdo. Com alguns temas e plug-ins instalados, mesmo uma pequena alteração pode afetar todas as páginas.

Uma maneira fácil de implementar a lógica de descoberta é usar um plug-in que permite o acionamento manual da invalidação de cache para todas as URLs. Porém, invalidar todas as URLs de uma só vez pode fazer com que o tráfego aumente no seu site do WordPress. Para obter um exemplo de lógica de invalidação de cache para rede de distribuição de conteúdo, consulte Liberar o cache do Azure e fazer a implementação de hook no GitHub.

Habilitar a autenticação de dois fatores

A autenticação de dois fatores aumenta a segurança de sua instalação e ajuda a proteger suas contas de administrador contra acesso não autorizado e ataques. Para aproveitar a autenticação de dois fatores, você pode usar um plug-in, como o plug-in de autenticação miniOrange. Entre outros recursos, este plug-in fornece uma maneira de configurar o Microsoft Authenticator como um método de autenticação de dois fatores para usuários que entram em seu site do WordPress como administradores.

Desabilite o acesso a XML/RPC

O XML-RPC é um protocolo remoto que fornece uma maneira para aplicativos de terceiros interagirem com o servidor do seu site. No entanto, esse protocolo também é um alvo comum para hackers, que o usam para lançar ataques de força bruta ou abusar vulnerabilidades em seu sistema de gerenciamento de conteúdo. Se você usar o Azure Front Door, poderá desabilitar o XML-RPC configurando uma regra de negação para URLs com o formato /xmlrpc.php.

Restrinja o acesso ao painel de administração

Por padrão, seu painel de administração do WordPress é acessível a qualquer pessoa com suas credenciais de conta e a URL correta, que tem o formato /wp-login.php ou /wp-admin. Como resultado, hackers e outros agentes maliciosos podem tentar adivinhar suas credenciais, realizar um sequestro de sessão, lançar ataques de força bruta ou explorar vulnerabilidades no WordPress para obter acesso.

O Firewall de Aplicativo Web pode ajudar a evitar alguns ataques, mas muitos administradores preferem restringir o acesso ao painel de administração do WordPress no nível da rede.

Por exemplo, você pode bloquear o acesso a URLs privadas no Azure Front Door. Em seguida, você pode usar o Gateway de Aplicativo do Azure para fornecer acesso interno de uma rede privada que usa uma topologia hub-and-spoke. As instâncias internas do Gateway de Aplicativo dão suporte a regras do Firewall de Aplicativo Web e às regras do Azure Front Door. Essas regras ajudam a proteger sua instalação do WordPress contra ataques internos. Se você puder tolerar o risco de um ataque interno, poderá usar uma instância interna do Azure Load Balancer em vez do Gateway de Aplicativo. O Load Balancer opera na camada quatro do modelo OSI (Interconexão de Sistemas Abertos).

Architecture diagram that shows blocked public access to a WordPress administration panel. A VPN in a hub-and-spoke topology provides internal access.

Baixe um Arquivo Visio dessa arquitetura.

Certos plug-ins do WordPress exigem URLs com o formato /wp-admin/admin-ajax.php para serem acessíveis publicamente e removidos dessa regra de restrição.

Armazenar segredos no Azure Key Vault

Para ajudar a garantir a segurança das implantações do WordPress no Azure, recomendamos que você armazene segredos, como senhas de banco de dados e certificados TLS ou SSL, no Key Vault. Esse serviço baseado em nuvem ajuda a fornecer armazenamento e gerenciamento seguros de chaves criptográficas, certificados e segredos.

O Key Vault ajuda seus aplicativos e serviços autorizados a acessar segredos com segurança. Você não precisa armazená-los em texto simples dentro de sua imagem de contêiner do WordPress ou no código do aplicativo.

Desempenho de ajuste

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

  • O Monitor de Consultas fornece um detalhamento do tempo gasto em cada consulta SQL e outras ações. Exemplos incluem erros PHP, hooks e ações, blocos de editor de blocos, scripts e folhas de estilo enfileirados e chamadas de API HTTP.
  • O Laps fornece um detalhamento de como o tempo é gasto em carregamentos de página do WordPress.

Desafios de hospedagem do WordPress

Com a arquitetura de aplicativos do WordPress, existem vários desafios de hospedagem, incluindo:

  • Escalabilidade. Uma arquitetura de hospedagem deve ser capaz de expandir durante os períodos de pico de tráfego.
  • Armazenamento ReadWriteMany (RWX). Por padrão, o WordPress armazena todos os ativos estáticos, plug-ins e código-fonte do tema no diretório /wp-content/. Durante uma expansão, todos os nós devem ser capazes de ler e gravar nesse diretório.
  • A classe de armazenamento de operações de entrada/saída por segundo (IOPS). O WordPress consiste em mais de 1.000 pequenos arquivos .php que o processador PHP referencia, carrega e executa durante as solicitações de entrada. Com alguns protocolos, o carregamento de vários arquivos pequenos pode aumentar a sobrecarga. O desempenho geral é mais lento do que carregar um arquivo com o mesmo tamanho total. Como resultado, a solução de armazenamento precisa oferecer suporte a IOPSs elevadas.
  • Invalidação do cache. Quando há uma nova atividade no aplicativo, como quando você publica um novo artigo, você precisa invalidar o cache em todos os nós.
  • A hora de criar o cache. Para o primeiro usuário de um determinado nó, o tempo de resposta pode ser lento até que o cache seja criado.

Opções de hospedagem do WordPress no Azure

O WordPress pode ser executado no Serviço de Aplicativo, no Serviço de Kubernetes do Azure (AKS) e nas Máquinas Virtuais do Azure. O tamanho da instalação é um fator importante no host selecionado. Para instalações pequenas e médias, o Serviço de Aplicativo é uma opção econômica. No entanto, para instalações maiores, você deve considerar a hospedagem AKS ou VM.

WordPress no Serviço de Aplicativo

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

  • É projetado para ajudá-lo a implantar rápida e facilmente uma instalação do WordPress.
  • É ideal para instalações do WordPress de pequeno a médio porte.
  • Fornece a escalabilidade, confiabilidade e segurança da plataforma Azure sem a necessidade de configuração ou gerenciamento complexos.
  • Executa atualizações automáticas, backups e monitoramento para ajudar a garantir que seu site esteja sempre disponível.

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

Cargas de trabalho com uso intensivo de armazenamento

Grandes instalações do WordPress podem exigir muito armazenamento. Nesses cenários, você deve usar uma solução de armazenamento com uma classe de alta IOPS e baixa latência. Recomendamos o Azure NetApp Files. O Azure NetApp Files pode oferecer suporte a implantações do WordPress que exigem muito armazenamento. Ele também fornece recursos extras, como proteção de dados, backup e restauração, replicação entre regiões e recuperação de desastres.

Para uma implantação de contêiner do WordPress, você deve usar AKS. Com o Azure NetApp Files, implemente o armazenamento por meio de um driver CSI (Interface de Armazenamento de Contêiner) Kubernetes. O Azure NetApp Files oferece um ReadWriteMany modo para que todos os nós possam ler e gravar no mesmo armazenamento. Para obter mais informações, confira Diretrizes de arquitetura do WordPress AKS.

Para uma instalação grande do WordPress que é executada em VMs, você deve montar o Azure NetApp Files por meio do protocolo NFS (sistema de arquivos de rede). Para saber mais, confira WordPress em máquinas virtuais.

Contêiner WordPress imutável

Uma abordagem alternativa aos métodos tradicionais de hospedagem é implantar o WordPress em um contêiner imutável. Essa abordagem tem suas vantagens e desvantagens. O código-fonte e todos os recursos em contêineres imutáveis são fixos e não podem ser modificados após a implantação. Você precisa fazer todas as alterações, incluindo novas instalações de plug-in ou atualização do núcleo do WordPress, em uma nova versão da imagem do contêiner. Embora essa abordagem ajude a garantir a consistência e simplifique as reversões, você precisa criar um pipeline de implantação para fazer alterações. Além disso, os contêineres imutáveis podem ser limitados nas opções de armazenamento persistente que oferecem. Talvez seja necessário desenvolver uma solução para manipular arquivos de mídia e outros dados. Apesar dessas limitações, as implantações de contêiner imutável oferecem benefícios em termos de segurança, escalabilidade e portabilidade.

Você pode implantar uma versão em contêiner imutável do WordPress em várias plataformas, incluindo Aplicativos de Contêiner do Azure, AKS e Serviço de Aplicativo com uma imagem de contêiner personalizada. Você pode hospedar a imagem de contêiner no Registro de Contêiner do Azure.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

Autor principal:

Outros colaboradores:

  • Adrian Calinescu | Arquiteto de Soluções Cloud Sênior

Para ver perfis não públicos no LinkedIn, entre no LinkedIn.

Próximas etapas

Documentação do produto:

Módulos de treinamento: