WordPress in 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 popolare usato per creare siti Web di tutte le dimensioni, a scopo multiplo. 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 delle installazioni e dei casi d'uso, WordPress ha anche requisiti di hosting univoci che dipendono da fattori quali volume di traffico e 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à travolgente, WordPress è una destinazione per gli 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 risolvere questi rischi creando un'installazione WordPress più sicura e migliore.

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

Usare Azure Web application firewall

Web application firewall consente di proteggere il sito Web da attacchi basati sul Web comuni. 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 un'ampia gamma di attacchi, inclusi gli inserimenti SQL, lo scripting tra siti (XSS) e la richiesta tra siti (CSRF).

È consigliabile usare Web application firewall in Frontdoor di Azure per ottenere la protezione centralizzata per le applicazioni Web. Frontdoor di Azure è una rete per la distribuzione di contenuti che consente agli utenti di tutto il mondo di ottenere accesso rapido, affidabile e sicuro al contenuto Web statico e dinamico delle applicazioni. La distribuzione di Web application firewall in Frontdoor di Azure consente di difendere i servizi Web da exploit e vulnerabilità comuni.

Rimuovere plug-in e temi inutilizzati

È necessario rimuovere plug-in e 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 si usa attivamente può rappresentare un rischio di sicurezza fornendo un punto di ingresso per gli hacker per sfruttare le vulnerabilità nel codice obsoleto o non risolto. Inoltre, avere molti plug-in e temi installati nel sito Web può rallentare le prestazioni aumentando il tempo di caricamento e l'utilizzo delle risorse del server.

Offload del contenuto statico dal processore PHP

Per ridurre il carico nel processore PHP, è necessario scaricare il 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 codice PHP e genera contenuto HTML in modo dinamico. Questo processo è intensivo di risorse. Tuttavia, il contenuto statico non cambia frequentemente, quindi è possibile servire contenuto statico direttamente da un file system server o da una rete di distribuzione di contenuti. Offload di questi asset, è possibile ridurre il carico sulla CPU e sulla RAM del server. Questa configurazione comporta tempi di caricamento più veloci delle pagine, prestazioni migliorate del sito Web e un'esperienza utente migliore.

Esistono anche altri vantaggi per la gestione delle risorse statiche da un servizio di rete per la distribuzione di contenuti, ad esempio Frontdoor di Azure. Ad esempio, quando si offload di contenuto statico, è possibile ridurre la latenza e aumentare la velocità del sito Web inserendo i server vicini 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 collegamento privato.

Invalidazione della cache della rete per la distribuzione del contenuto

Per installazioni di WordPress di grandi dimensioni che usano una rete di distribuzione del contenuto, ad esempio Frontdoor di Azure o Rete per la distribuzione di contenuti di Azure, è necessario implementare la logica di invalidazione della cache. Ogni volta che si verifica un nuovo evento, è necessario invalidare la cache nella rete di recapito del contenuto 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 le pagine generate dinamicamente, ad esempio categorie e archivi, nella cache della rete di recapito del contenuto. Con alcuni temi e plug-in installati, anche una modifica secondaria può influire su ogni pagina.

Un modo semplice per implementare la logica di individuazione consiste nell'usare un plug-in che consente l'attivazione manuale della invalidazione della cache per tutti gli URL. Tuttavia, l'invalidazione di tutti gli URL contemporaneamente può causare un picco del traffico nel sito WordPress. Per un esempio di logica di invalidazione della cache per la rete per la distribuzione di contenuti, vedere La cache Scarica cache di Azure e distribuisce l'implementazione di hook in GitHub.

Abilitare l'autenticazione a due fattori

L'autenticazione a due fattori aumenta la sicurezza dell'installazione e consente di proteggere gli account amministratori da accessi e attacchi non autorizzati. Per sfruttare l'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.

Disabilitare l'accesso XML-RPC

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 obiettivo comune per gli hacker, che lo usano per avviare 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 al pannello di amministrazione

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, gli hacker e altri attori malintenzionati possono tentare di indovinare le credenziali, eseguire un hijacking di sessione, avviare 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 gateway applicazione di Azure per fornire l'accesso interno da una rete privata che usa una topologia hub-and-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. Load Balancer opera a livello quattro del modello Open Systems Interconnection (OSI).

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

Scaricare un file di Visio di questa architettura.

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

Archiviare segreti in Azure Key Vault

Per garantire la sicurezza delle distribuzioni di WordPress in Azure, è consigliabile archiviare segreti, ad esempio password del database e certificati TLS o SSL, in Key Vault. Questo servizio basato sul cloud consente di fornire archiviazione e gestione sicure di chiavi di crittografia, 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, è necessario ottimizzare varie impostazioni e usare 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. Alcuni esempi includono errori PHP, hook e azioni, blocchi dell'editor di blocchi, script e fogli di stile e chiamate API HTTP.
  • Il ritardo fornisce una suddivisione del tempo trascorso nei 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 ridimensionamento orizzontale, tutti i nodi devono essere in grado di leggere e scrivere in tale directory.
  • Classe di archiviazione di input/output al secondo (IOPS). WordPress è costituito da oltre 1.000 file con estensione php di piccole dimensioni a cui fa riferimento il processore PHP, carica e viene eseguito 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.
  • Invalidazione cache. Quando è presente una nuova attività nell'applicazione, ad esempio quando si pubblica un nuovo articolo, è necessario invalidare la cache in tutti i nodi.
  • Tempo per compilare la cache. Per il primo utente di un determinato nodo, il tempo di risposta può essere lento finché non viene compilata la cache.

Opzioni di hosting di WordPress in Azure

WordPress può essere eseguito in servizio app, servizio Azure Kubernetes e Macchine virtuali di Azure. Le dimensioni dell'installazione sono un fattore importante nell'host selezionato. Per installazioni di piccole e medie dimensioni, servizio app è un'opzione conveniente. Tuttavia, per installazioni di grandi dimensioni, è consigliabile prendere in considerazione l'hosting del servizio Azure Kubernetes o della macchina virtuale.

WordPress in servizio app

Microsoft offre una soluzione completamente gestita per l'esecuzione di WordPress in macchine virtuali Servizio app in 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 complesse.
  • Esegue aggiornamenti automatici, backup e monitoraggio per garantire che il sito sia sempre disponibile.

Per altre informazioni, vedere WordPress in servizio app.

Carichi di lavoro a elevato utilizzo di archiviazione

Le installazioni wordPress di grandi dimensioni possono essere a elevato utilizzo di spazio di archiviazione. In questi scenari è consigliabile usare una soluzione di archiviazione con una classe IOPS elevata 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 del contenitore di WordPress, è consigliabile usare il servizio Azure Kubernetes. Con Azure NetApp Files, implementare l'archiviazione tramite un driver CSI (Container Storage Interface) di 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 Architettura di WordPress del servizio Azure Kubernetes.

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. Questo 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 garantisce coerenza e semplifica i rollback, è necessario creare una pipeline di distribuzione per apportare modifiche. Inoltre, i contenitori non modificabili possono essere limitati nelle opzioni di archiviazione persistenti 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.

Autori di contributi

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

Autore principale:

Altri collaboratori:

  • Adrian Calinescu | Senior Cloud Solution Architect

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

Passaggi successivi

Documentazione sui prodotti:

Moduli di training: