WordPress no Azure

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

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. De pequenos blogs pessoais a sites corporativos de grande escala e lojas de comércio eletrônico, o WordPress oferece uma gama de funcionalidades e personalizações para atender a diferentes necessidades. No entanto, devido aos tamanhos variados de suas instalações e casos de uso, 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

Devido à sua popularidade esmagadora, o WordPress é um alvo para hackers. Os sites que são executados na plataforma podem ser vulneráveis a ameaças à 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 são aplicáveis.

Usar o Firewall de Aplicativo Web do Azure

O Web Application Firewall ajuda a proteger seu site contra ataques comuns baseados na Web. Funciona como um filtro entre o seu website e a internet. Nessa capacidade, o Web Application Firewall monitora o tráfego de entrada e bloqueia solicitações maliciosas que podem explorar vulnerabilidades no código do seu site. O Web Application Firewall ajuda a proteger seu site contra uma série de ataques, incluindo injeções de SQL, scripts entre sites (XSS) e falsificação de solicitação 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 entrega de conteúdo que ajuda a fornecer aos usuários em todo o mundo acesso rápido, confiável e seguro ao conteúdo da Web estático e dinâmico de seus aplicativos. A implantação do Firewall de Aplicativo Web no Azure Front Door ajuda a defender seus serviços Web contra explorações e vulnerabilidades comuns.

Remover plug-ins e temas não utilizados

Você deve remover plug-ins e temas não utilizados da sua instalação do WordPress. Este passo é importante para ajudar a manter o seu site WordPress seguro e otimizar o 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.

Descarregar conteúdo estático do processador PHP

Para reduzir a carga no seu 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 a 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. Este processo consome muitos recursos. No entanto, o conteúdo estático não muda com frequência, portanto, você pode fornecer conteúdo estático diretamente de um sistema de arquivos do servidor ou de uma rede de distribuição 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 servidores próximos às localizações geográficas dos usuários.

Nota

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 Private Link.

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

Para grandes instalações do WordPress que usam uma rede de entrega de conteúdo, como o Azure Front Door ou o Azure Content Delivery Network, 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 entrega 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 todos os URLs afetados pela alteração. 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 de implementar a lógica de descoberta é usar um plug-in que permita o acionamento manual da invalidação de cache para todas as URLs. Mas invalidar todos os URLs de uma só vez pode fazer com que o tráfego aumente no seu site WordPress.

Ativar 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 acesso não autorizado e ataques. Para tirar proveito da 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 WordPress como administradores.

Desabilitar acesso XML-RPC

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 explorar vulnerabilidades em seu sistema de gerenciamento de conteúdo. Se você usar o Azure Front Door, poderá desabilitar XML-RPC configurando uma regra de negação para URLs com o formato /xmlrpc.php.

Restringir 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 o URL correto, que tem o formato /wp-login.php ou /wp-admin. Como resultado, hackers e outros atores mal-intencionados podem tentar adivinhar suas credenciais, executar um sequestro de sessão, lançar ataques de força bruta ou explorar vulnerabilidades no WordPress para obter acesso.

O Web Application Firewall 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 às regras do Firewall de Aplicativo Web e às regras da Porta da Frente do Azure. 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 Application Gateway. O Load Balancer opera na camada quatro do modelo OSI (Open Systems Interconnection).

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

Transfira um ficheiro do Visio desta arquitetura.

Alguns plug-ins do WordPress exigem que URLs com o formato /wp-admin/admin-ajax.php sejam acessíveis publicamente e removidos desta regra de negaçã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 Cofre da Chave. Este serviço baseado na nuvem ajuda a fornecer armazenamento e gestão seguros de chaves criptográficas, certificados e segredos.

O Key Vault ajuda as suas aplicações e serviços autorizados a aceder a segredos de forma segura. Você não precisa armazená-los em texto simples dentro da imagem do contêiner do WordPress ou no código do aplicativo.

Otimizar o desempenho

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. Os exemplos incluem erros, ganchos e ações do PHP, blocos de editor de blocos, scripts e folhas de estilo enfileirados e chamadas de API HTTP.

  • Laps é um plugin que mostra informações de desempenho sobre carregamentos de páginas WordPress. Fornecendo um resumo visual fácil de inspecionar, ele rastreia automaticamente eventos como execução do PHP, processos principais, carregamentos de plugins, carregamentos de temas, loops de post principais, barras laterais, consultas de banco de dados e solicitações de rede. Este detalhamento mostra como o tempo é gasto em carregamentos de páginas do WordPress.

Desafios de hospedagem do WordPress

Com a arquitetura de aplicativos 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 /wp-content/ tema no diretório. 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 recebidas. Com alguns protocolos, carregar vários arquivos pequenos pode aumentar a sobrecarga. O desempenho geral é então mais lento do que carregar um arquivo com o mesmo tamanho total. Como resultado, a solução de armazenamento precisa suportar IOPS altas.
  • Invalidação de cache. Quando há uma nova atividade no aplicativo, como quando você publica um novo artigo, é necessário invalidar o cache em todos os nós.
  • O tempo para criar o cache. Para o primeiro usuário de um determinado nó, o tempo de resposta pode ser lento até que o cache seja construído.

Opções de hospedagem do WordPress no Azure

O WordPress pode ser executado no Serviço de Aplicativo, no Serviço 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 WordPress. Esta solução:

  • É projetado para ajudá-lo a implantar rápida e facilmente uma instalação do WordPress.
  • É ideal para pequenas e médias instalações WordPress.
  • 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 de armazenamento intensivo

Grandes instalações do WordPress podem ser intensivas em armazenamento. Nesses cenários, você deve usar uma solução de armazenamento com uma classe de IOPS alta e baixa latência. Recomendamos os Arquivos NetApp do Azure. Os Arquivos NetApp do Azure podem dar suporte a implantações WordPress com uso intensivo de 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 o AKS. Com o Azure NetApp Files, implemente o armazenamento por meio de um driver Kubernetes Container Storage Interface (CSI). Os Arquivos NetApp do Azure oferecem um ReadWriteMany modo para que todos os nós possam ler e gravar no mesmo armazenamento. Para obter mais informações, consulte Arquitetura AKS WordPress.

Para uma instalação grande do WordPress que é executada em VMs, você deve montar os Arquivos NetApp do Azure por meio do protocolo NFS (sistema de arquivos de rede). Para obter mais informações, consulte WordPress em máquinas virtuais.

Contentor WordPress imutável

Uma abordagem alternativa aos métodos tradicionais de hospedagem é implantar o WordPress em um contêiner imutável. Esta abordagem tem vantagens e desvantagens. O código-fonte e todos os recursos dentro de 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 lidar com arquivos de mídia e outros dados. Apesar dessas limitações, implantações de contêineres imutáveis oferecem benefícios em termos de segurança, escalabilidade e portabilidade.

Você pode implantar uma versão imutável em contêineres 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.

Contribuidores

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

Autor principal:

Outros contribuidores:

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

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

Próximos passos

Documentação do produto:

Módulos de formação: