Quando si tratta degli aspetti tecnici dell’hosting di siti web creati WordPress, tutti conoscono Apache e NGINX. Due dei più famosi server in circolazione.
Alimentando il 45,2% di tutti i siti Web, Apache domina ancora il mercato dei server. Lo stack LAMP (Linux, Apache, MySQL e PHP) è famoso per flessibilità e prestazioni. In effetti, per un vasto numero di sviluppatori, questo è lo stack più scelto per lo sviluppo. Tuttavia, negli ultimi anni, NGINX ha lentamente conquistato l’interesse degli sviluppatori di tutto il mondo. Oggi gestisce il 40% dei server Web totali e si trova al secondo posto nella competizione.
Apache e NGINX sono entrambi server web open-source. È interessante notare che, data la lunga storia e l’elevato utilizzo di questi software per l’hosting di siti Web WordPress, è sorprendente che la comunità di WordPress faccia regolarmente domande come: che cos’è NGINX / Apache? In che modo sono diversi (e simili)? Quale dovresti usare? Oppure, puoi usare NGINX con Apache? In questa guida, ho coperto tutte queste domande.
Cosa è NGINX
Rilasciato alla fine del 2002, NGINX è stato sviluppato per “soddisfare le esigenze del nuovo millennio”. Igor Sysoev, il suo fondatore, ha avviato il progetto per concentrarsi su concorrenza elevata, alte prestazioni e basso utilizzo della memoria. Originariamente creato per il portale web russo, Rambler, è stato adottato da molti siti di alto traffico a causa della sua solida prestazione.
NGINX (pronunciato come “engine-x”) è un software open source per Web serving, cache, media streaming, reverse proxy, bilanciamento del carico e altro. Il server software è progettato per massimizzare le prestazioni durante l’utilizzo di risorse minime.
NGINX è stato creato per risolvere il C10k, un problema reale per gestire un gran numero di visitatori allo stesso tempo. C10k è una sfida seria che si riferisce a un server che gestisce decine di migliaia di connessioni simultanee.
NGINX è un web server altamente ottimizzato, molto leggero e veloce, costruito per prestazioni sostenute sotto stress crescente (numero di richieste e numero di utenti concorrenti). Considerando i vantaggi, non sorprende che alcuni siti Web alimentati da WordPress si stiano muovendo verso l’hosting NGINX
Cosa è Apache
Apache, il server web più popolare sviluppato e gestito da Apache Foundation.
Apache è noto per la sua affidabilità, compatibilità e una vasta gamma di funzioni supportando quasi tutti i più diffusi linguaggi lato server, inclusi PHP, Python e Perl.
Nel 1995 non esisteva il cloud hosting e meno 1% del mondo aveva accesso a Internet. Fu allora che venne rilasciata la prima versione di Apache, ed era perfetta in tutti i sensi. Ancora oggi, Apache ha molte più funzionalità di qualsiasi altro server web. E qui sta il problema: non molti sviluppatori hanno bisogno di così tante funzioni per la maggior parte dei progetti su cui lavorano quotidianamente.
Poiché Apache è facilmente personalizzabile e può essere ottimizzato per adattarsi alle capacità tecniche di quasi tutte le configurazioni hardware, è facile capire le ragioni della popolarità di Apache come software server preferito.
Apache vs. NGINX
La principale differenza è come NGINX e Apache gestiscono le comunicazioni tra un browser e il server web.
Apache utilizza keep-alive che mantiene aperta una connessione a ciascun utente. D’altra parte, NGINX utilizza un ciclo di eventi non bloccanti, che raggruppa le connessioni che funzionano in modo asincrono tramite i processi di lavoro.
Quando si parla di flessibilità, Apache non ha concorrenza. L’ultima versione offre un’implementazione dell’architettura Multi-Processing-Modules (MPM). Questo mescola diversi thread e processi e fornisce prestazioni equivalenti a server Web basati su eventi.
NGINX, d’altra parte, è estremamente leggero, sicuro e veloce. Ha quasi tutte le funzionalità che Apache ha implementato nella sua ultima versione. NGINX serve rapidamente contenuti statici e può gestire migliaia di richieste al secondo.
Tuttavia, lo sviluppo di moduli per l’architettura piuttosto complessa di NGINX non è così semplice come lo sviluppo di moduli per Apache. Questa è un’altra ragione molto importante dietro l’alto tasso di adozione di Apache nella comunità di utenti generale.
Secondo Google Trends, NGINX sta guadagnando terreno rapidamente, divorando la quota di Apache.
WordPress con NGINX o Apache?
Mentre Apache e NGINX sono i leader del mercato, le ragioni della loro popolarità sono molto diverse.
Tuttavia, sia NGINX che Apache hanno aspetti negativi. Apache consuma enormi risorse hardware (in particolare la memoria del server), mentre NGINX (ottimo per il contenuto statico) richiede l’aiuto di PHP-FPM o moduli simili per contenuti dinamici.
Molti utenti di WordPress si confondono tra loro a causa di una semplice ragione: molte guide di hosting di WordPress assumono Apache come server Web perché spesso è la scelta predefinita della maggior parte dei provider di hosting Web per la sua compatibilità e facilità d’uso.
Mentre WordPress può anche essere ospitato su NGINX senza bisogno di Apache, NGINX non offre .htaccess e quindi WordPress non sarà in grado di utilizzare il file .htaccess. Se si ospita il proprio sito Web WordPress su NGINX, potrebbe essere necessario riconfigurare regolarmente NGINX per i plugin WordPress che utilizzano il file .htaccess.
NGINX è ideale per servire contenuti statici ed è qui che supera ogni competizione. Un tipico post di WordPress comprende contenuti statici come CSS, script e immagini, NGINX può servire sia un server che una cache.
Per ottenere il massimo da NGINX, gli esperti suggeriscono di utilizzare un dominio senza cookie per le risorse statiche in modo tale che il contenuto sia realmente memorizzato nella cache dal browser web. L’utilizzo di un sottodominio come static.example.com è ideale per servire il contenuto statico.
Per i siti Web WordPress, provare ad utilizzare Apache con NGINX (NGINX come proxy inverso e Apache nel back-end). Ciò consente al tuo sito WordPress di utilizzare il file .htaccess e ottenere i benefici delle prestazioni di NGINX per la pubblicazione di contenuti statici. Questa è una potente combinazione con un potente backend e un frontend robusto.
Conclusione
NGINX è molto veloce per contenuti statici e Apache è popolare per la sua potenza e la compatibilità back-end. Confrontare NGINX con Apache non sarebbe equo, poiché ognuno ha i propri vantaggi e svantaggi. Scegliere tra i due potrebbe essere difficile e tutto si riduce alle tue esigenze, al traffico attuale e previsto e alla potenziale crescita futura.
Consigliamo vivamente di sfruttare il meglio di entrambi i mondi combinando Apache con NGINX (come ThunderStack, il nostro stack di hosting personalizzato).