WordPress su Azure

Servizio app di Azure
Frontdoor di Azure
Servizio Azure Kubernetes
Web application firewall di Azure
Collegamento privato di Azure

WordPress è un sistema di gestione dei contenuti versatile e diffuso usato per creare siti Web di tutte le dimensioni, per più scopi. Da piccoli blog personali a siti aziendali su larga scala e negozi di e-commerce, WordPress offre una gamma di funzionalità e personalizzazioni per soddisfare esigenze diverse. Tuttavia, a causa delle diverse dimensioni e dei casi d'uso delle installazioni, WordPress ha anche requisiti di hosting univoci che dipendono da fattori quali il volume di traffico e le esigenze di archiviazione.

Questo articolo illustra le distribuzioni di WordPress in Azure. Fornisce indicazioni su cosa considerare e implementare per garantire un'installazione sicura, scalabile e conveniente.

Suggerimenti generali sulla sicurezza e sulle prestazioni di WordPress

A causa della sua popolarità schiacciante, WordPress è un bersaglio per hacker. I siti Web eseguiti sulla piattaforma possono essere vulnerabili alle minacce alla sicurezza, ad esempio malware e attacchi di phishing. I suggerimenti seguenti consentono di affrontare questi rischi creando un'installazione wordPress più sicura e più efficiente.

Se si usa una macchina virtuale (VM) o un servizio app Azure per l'architettura di hosting o se si usa un'altra soluzione, questi suggerimenti sono applicabili.

Usare Web Application Firewall di Azure

Web Application Firewall consente di proteggere il sito Web da attacchi comuni basati sul Web. Funge da filtro tra il sito Web e Internet. In questa capacità, Web Application Firewall monitora il traffico in ingresso e blocca le richieste dannose che possono sfruttare le vulnerabilità nel codice del sito Web. Web Application Firewall consente di proteggere il sito Web da una serie di attacchi, tra cui attacchi SQL injection, scripting tra siti (XSS) e richiesta intersito falso (CSRF).

Azure Web Application Firewall (WAF) in Frontdoor di Azure fornisce una protezione centralizzata per le applicazioni Web. Azure Front Door è una rete per la distribuzione di contenuti che consente di offrire agli utenti di tutto il mondo un accesso rapido, affidabile e sicuro ai contenuti Web statici e dinamici delle tue applicazioni. La distribuzione di Web Application Firewall in Frontdoor di Azure consente di difendere i servizi Web da exploit e vulnerabilità comuni.

Rimuovere i plug-in e i temi inutilizzati

È consigliabile rimuovere i plug-in e i temi inutilizzati dall'installazione di WordPress. Questo passaggio è importante per aiutare a proteggere il sito Web WordPress e ottimizzare le prestazioni. Anche un plug-in o un tema che non usi attivamente può rappresentare un rischio per la sicurezza fornendo un punto di ingresso per gli hacker per sfruttare le vulnerabilità nel codice obsoleto o non archiviato. Inoltre, avere un sacco di plug-in e temi installati nel sito Web può rallentare le prestazioni aumentando il tempo di caricamento e l'utilizzo delle risorse server.

Offload di contenuto statico lontano dal processore PHP

Per ridurre il carico sul processore PHP, è consigliabile eseguire l'offload di contenuto statico, ad esempio immagini, video e file CSS. L'offload di contenuto statico consente di ottimizzare le prestazioni del sito Web e ridurre il carico del server. Quando un utente visita un sito Web, il server elabora il codice PHP e genera contenuto HTML in modo dinamico. Questo processo richiede un utilizzo intensivo delle risorse. Tuttavia, il contenuto statico non cambia frequentemente, quindi è possibile gestire il contenuto statico direttamente da un file system del server o da una rete per la distribuzione di contenuti. Eseguendo l'offload di questi asset, è possibile ridurre il carico sulla CPU e sulla RAM del server. Questa configurazione comporta tempi di caricamento delle pagine più veloci, prestazioni del sito Web migliorate e un'esperienza utente migliore.

Esistono anche altri vantaggi per gestire le risorse statiche da un servizio di rete per la distribuzione di contenuti, ad esempio Frontdoor di Azure. Ad esempio, quando si esegue l'offload di contenuto statico, è possibile ridurre la latenza e aumentare la velocità del sito Web posizionando i server vicino alle posizioni geografiche degli utenti.

Nota

Per proteggere un'origine con Frontdoor di Azure usando un endpoint privato, è necessario usare lo SKU Premium di Frontdoor di Azure. Per altre informazioni, vedere Proteggere l'origine con il collegamento privato.

Cancellare la cache della rete per la distribuzione di contenuti

Per installazioni WordPress di grandi dimensioni che usano una rete per la distribuzione di contenuti, ad esempio Frontdoor di Azure o Azure rete per la distribuzione di contenuti, è necessario implementare la logica di invalidazione della cache. Ogni volta che si verifica un nuovo evento, è necessario invalidare la cache nella rete per la distribuzione di contenuti per la pagina interessata. Esempi di eventi includono la pubblicazione di un nuovo articolo, l'aggiornamento di una pagina esistente e l'aggiunta di un commento. La logica di invalidazione deve individuare tutti gli URL che influiscono sulla modifica. In particolare, la logica deve trovare e invalidare pagine generate dinamicamente, ad esempio categorie e archivi, nella cache della rete per la distribuzione di contenuti. Con alcuni temi e plug-in installati, anche una modifica secondaria può influire su ogni pagina.

Un modo per implementare la logica di individuazione consiste nell'usare un plug-in che consente l'attivazione manuale dell'invalidazione della cache per tutti gli URL. Ma l'invalidazione di tutti gli URL contemporaneamente può causare picchi di traffico nel sito WordPress.

Abilita l'autenticazione a due fattori

L'autenticazione a due fattori aumenta la sicurezza dell'installazione e consente di proteggere gli account amministratore da accessi e attacchi non autorizzati. Per sfruttare i vantaggi dell'autenticazione a due fattori, è possibile usare un plug-in, ad esempio il plug-in di autenticazione miniOrange. Tra le altre funzionalità, questo plug-in consente di configurare Microsoft Authenticator come metodo di autenticazione a due fattori per gli utenti che accedono al sito WordPress come amministratori.

Disable XML/RPC access

XML-RPC è un protocollo remoto che consente alle applicazioni di terze parti di interagire con il server del sito Web. Tuttavia, questo protocollo è anche un bersaglio comune per gli hacker, che lo usano per lanciare attacchi di forza bruta o sfruttare vulnerabilità nel sistema di gestione dei contenuti. Se si usa Frontdoor di Azure, è possibile disabilitare XML-RPC configurando una regola di negazione per gli URL con il formato /xmlrpc.php.

Limitare l'accesso alla cartella Administration

Per impostazione predefinita, il pannello di amministrazione di WordPress è accessibile a chiunque abbia le credenziali dell'account e l'URL corretto, con il formato /wp-login.php o /wp-admin. Di conseguenza, hacker e altri attori malintenzionati possono tentare di indovinare le credenziali, eseguire un dirottamento della sessione, lanciare attacchi di forza bruta o sfruttare le vulnerabilità in WordPress per ottenere l'accesso.

Web Application Firewall può aiutare a prevenire alcuni attacchi, ma molti amministratori preferiscono limitare l'accesso al pannello di amministrazione di WordPress a livello di rete.

Ad esempio, è possibile bloccare l'accesso agli URL privati in Frontdoor di Azure. È quindi possibile usare app Azure lication Gateway per fornire l'accesso interno da una rete privata che usa una topologia hub-spoke. Le istanze interne di gateway applicazione supportano le regole di Web Application Firewall e le regole di Frontdoor di Azure. Queste regole consentono di proteggere l'installazione di WordPress da attacchi interni. Se è possibile tollerare il rischio di un attacco interno, è possibile usare un'istanza interna di Azure Load Balancer anziché gateway applicazione. Azure Load Balancer funziona a livello 4 del modello OSI (Open Systems Interconnection).

Diagramma dell'architettura che mostra l'accesso pubblico bloccato a un pannello di amministrazione di WordPress. Una VPN in una topologia hub-spoke fornisce l'accesso interno.

Scaricare un file di Visio di questa architettura.

Alcuni plug-in WordPress richiedono che gli URL con il formato /wp-admin/admin-ajax.php siano accessibili pubblicamente e rimossi da questa regola di negazione.

Archiviare segreti in Azure Key Vault

Per garantire la sicurezza delle distribuzioni WordPress in Azure, è consigliabile archiviare segreti, ad esempio password di database e certificati TLS o SSL, in Key Vault. Questo servizio basato sul cloud consente di fornire archiviazione sicura e gestione di chiavi crittografiche, certificati e segreti.

Key Vault consente alle applicazioni e ai servizi autorizzati di accedere in modo sicuro ai segreti. Non è necessario archiviarli in testo normale all'interno dell'immagine del contenitore WordPress o nel codice dell'applicazione.

Ottimizzare le prestazioni

Per ottimizzare le prestazioni di WordPress, è consigliabile ottimizzare varie impostazioni e usare i plug-in. I plug-in seguenti possono essere utili per il debug delle installazioni di WordPress:

  • Monitoraggio query fornisce una suddivisione del tempo dedicato a ogni query SQL e ad altre azioni. Gli esempi includono errori PHP, hook e azioni, blocchi dell'editor di blocchi, script accodati e fogli di stile e chiamate API HTTP.

  • Laps è un plug-in che mostra le informazioni sulle prestazioni sui caricamenti di pagine WordPress. Fornendo un riepilogo visivo facile da esaminare, tiene traccia automaticamente di eventi come l'esecuzione di PHP, i processi principali, i caricamenti del plug-in, i caricamenti dei temi, i cicli post principali, le barre laterali, le query di database e le richieste di rete. Questa suddivisione mostra come viene impiegato tempo per i caricamenti di pagine WordPress.

Problemi di hosting di WordPress

Con l'architettura dell'applicazione WordPress, esistono diversi problemi di hosting, tra cui:

  • Scalabilità. Un'architettura di hosting deve essere in grado di aumentare il numero di istanze durante i periodi di traffico di picco.
  • Archiviazione ReadWriteMany (RWX). Per impostazione predefinita, WordPress archivia tutti gli asset statici, i plug-in e il codice sorgente del tema nella /wp-content/ directory. Durante un aumento del numero di istanze, tutti i nodi devono essere in grado di leggere e scrivere in tale directory.
  • Classe di archiviazione delle operazioni di input/output al secondo (IOPS). WordPress è costituito da oltre 1.000 file .php di piccole dimensioni a cui fa riferimento il processore PHP, carica ed esegue durante le richieste in ingresso. Con alcuni protocolli, il caricamento di numerosi file di piccole dimensioni può aumentare il sovraccarico. Le prestazioni complessive sono quindi più lente rispetto al caricamento di un file con le stesse dimensioni totali. Di conseguenza, la soluzione di archiviazione deve supportare operazioni di I/O al secondo elevate.
  • Annullamento convalida cache. Quando nell'applicazione è presente una nuova attività, ad esempio quando si pubblica un nuovo articolo, è necessario invalidare la cache in tutti i nodi.
  • Ora di compilazione della cache. Per il primo utente di un determinato nodo, il tempo di risposta può essere lento fino a quando non viene compilata la cache.

Opzioni di hosting di WordPress in Azure

WordPress può essere eseguito su App Service, Azure Kubernetes Service (AKS) e Azure Virtual Machines. Le dimensioni dell'installazione sono un fattore importante nell'host selezionato. Per installazioni da piccole a medie, servizio app è un'opzione conveniente. Tuttavia, per le installazioni di dimensioni maggiori, è consigliabile prendere in considerazione l'hosting del servizio Azure Kubernetes o della macchina virtuale.

WordPress nel servizio App

Microsoft offre una soluzione completamente gestita per l'esecuzione di WordPress in servizio app in macchine virtuali Linux. Per informazioni dettagliate, vedere Creare un sito WordPress. Questa soluzione:

  • È progettato per aiutarti a distribuire rapidamente e facilmente un'installazione di WordPress.
  • Ideale per installazioni WordPress di piccole e medie dimensioni.
  • Offre scalabilità, affidabilità e sicurezza della piattaforma Azure senza la necessità di una configurazione o una gestione complessa.
  • Esegue aggiornamenti automatici, backup e monitoraggio per garantire che il sito sia sempre disponibile.

Per ulteriori informazioni, vedere WordPress sui Servizi app.

Carichi di lavoro a elevato utilizzo di risorse di archiviazione

Le installazioni wordPress di grandi dimensioni possono richiedere un elevato utilizzo di spazio di archiviazione. In questi scenari è consigliabile usare una soluzione di archiviazione con una classe high-IOPS e una bassa latenza. È consigliabile Azure NetApp Files. Azure NetApp Files può supportare distribuzioni WordPress a elevato utilizzo di archiviazione. Offre anche funzionalità aggiuntive, ad esempio protezione dei dati, backup e ripristino, replica tra aree e ripristino di emergenza.

Per una distribuzione di contenitori di WordPress, è consigliabile usare il servizio Azure Kubernetes. Con Azure NetApp Files, implementare l'archiviazione tramite un driver CSI (Container Storage Interface) kubernetes. Azure NetApp Files offre una ReadWriteMany modalità in modo che tutti i nodi possano leggere e scrivere nella stessa risorsa di archiviazione. Per altre informazioni, vedere AKS WordPress Architecture.

Per un'installazione wordPress di grandi dimensioni eseguita nelle macchine virtuali, è necessario montare Azure NetApp Files tramite il protocollo NFS (Network File System). Per altre informazioni, vedere WordPress nelle macchine virtuali.

Contenitore WordPress non modificabile

Un approccio alternativo ai metodi di hosting tradizionali consiste nel distribuire WordPress in un contenitore non modificabile. Ogni approccio presenta vantaggi e svantaggi. Il codice sorgente e tutte le risorse all'interno di contenitori non modificabili sono fissi e non possono essere modificati dopo la distribuzione. È necessario apportare tutte le modifiche, incluse le nuove installazioni di plug-in o l'aggiornamento principale di WordPress, in una nuova versione dell'immagine del contenitore. Anche se questo approccio consente di garantire coerenza e semplificare i rollback, è necessario creare una pipeline di distribuzione per apportare modifiche. Inoltre, i contenitori non modificabili possono essere limitati nelle opzioni di archiviazione permanente offerte. Potrebbe essere necessario sviluppare una soluzione per la gestione di file multimediali e altri dati. Nonostante queste limitazioni, le distribuzioni di contenitori non modificabili offrono vantaggi in termini di sicurezza, scalabilità e portabilità.

È possibile distribuire una versione in contenitori non modificabile di WordPress in varie piattaforme, tra cui App contenitore di Azure, servizio Azure Kubernetes e servizio app con un'immagine del contenitore personalizzata. È possibile ospitare l'immagine del contenitore in Registro Azure Container.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autore principale:

Altri contributori:

  • Adrian Calinescu | Senior Cloud Solution Architect

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi

Documentazione sui prodotti:

Moduli di training: