NGINX vs Apache: qual è il miglior server Web per WordPress?
Pubblicato: 2023-02-12Per eseguire un sito Web WordPress, è necessario ospitarlo su un server Web. Questo è ciò che consente ai browser Web di richiedere i dati del tuo sito. Tuttavia, ci sono diverse opzioni di server web, che possono rendere la scelta di un compito arduo.
Mentre ci sono molti server web tra cui scegliere, Apache e NGINX sono le opzioni più popolari. Ma quale dei due è il miglior web server?
Questi due server web gestiscono oltre il 50% di tutto il traffico web. Sebbene condividano molte qualità, ci sono differenze che devi conoscere che possono aiutarti a scegliere quello giusto per il tuo sito. In questo articolo discuteremo le differenze tra NGINX e Apache. Vedremo quindi come installare WordPress su entrambi i tipi di server. Iniziamo!
Confronto delle prestazioni: NGINX vs Apache
Come accennato in precedenza, NGINX e Apache sono le opzioni di server Web più importanti. Possono gestire diversi carichi di lavoro e lavorare con altri software per formare stack LAMP e LEMU. Tuttavia, per confrontare accuratamente questi server web, dovrai capire in cosa differiscono.
Apache
Apache è il più vecchio dei due server ed è stato rilasciato e sviluppato per la prima volta dalla Apache Software Foundation nel 1995 da Robert McCool. Dal 1996 Apache è stato il miglior server web ed è utilizzato da circa il 38,7% dei siti web. Attualmente, Apache Foundation continua a rilasciare versioni per Apache.
Il modulo Apache offre una serie di vantaggi, tra cui:
- Opzioni di preinstallazione: Apache è preinstallato sulle principali distribuzioni Linux.
- Comunità di utenti: Apache ha una vasta comunità di utenti che si offre aiuto reciproco.
- Sistema di caricamento dinamico dei moduli: questo sistema ti impedisce di toccare il pacchetto principale durante l'aggiornamento del server.
- Riscrittura URL in .htaccess : Apache 2 utilizza mod_rewrite per riscritture pulite.
- Design modulare: Apache offre maggiore personalizzazione e flessibilità grazie al design modulare.
- Configurazione del server tramite il file httpd.conf : la configurazione è semplice, in quanto non è necessario accedere al file principale apache2.conf .
- Agire come server "gateway": Apache può anche svolgere la funzione di server proxy inverso.
Il server Apache è un server Web intuitivo con molte funzionalità di personalizzazione. Il software è anche compatibile con i server Unix e Windows.
NGINX
NGINX è stato rilasciato nel 2004 da Igor Sysoev, fondatore di NGINX Inc., per risolvere il problema del C10K. Questa è la sfida che i server Web devono affrontare quando gestiscono 10.000 o più richieste di connessione simultanee.
Per risolvere questo problema, NGINX è stato sviluppato come architettura asincrona, non bloccante e basata su eventi. Questa è una delle principali differenze tra NGINX e Apache. È anche uno dei motivi per cui circa il 32,1% dei siti Web utilizza NGINX.
Ci sono molti altri vantaggi offerti da NGINX, come:
- Design leggero : NGINX può essere eseguito su hardware minimo e utilizza meno memoria rispetto ad Apache.
- Gestione del contenuto statico : NGINX offre una migliore gestione del contenuto statico se configurato correttamente.
- Reattività ai carichi pesanti : NGINX rimane altamente reattivo in presenza di traffico intenso.
- Design intuitivo : la curva di apprendimento è più semplice e NGINX è adatto ai principianti.
- Configurazione modulare : il design di questo server consente build flessibili e una gamma di moduli di terze parti.
- Proxy inverso: NGINX Plus offre un proxy inverso basato su software con funzionalità simili alle soluzioni basate su hardware a un costo inferiore.
NGINX e NGINX Plus sono spesso visti come opzioni migliori per i siti Web ad alto traffico grazie alle sue capacità di bilanciamento del carico per gestire carichi più pesanti. È anche ideale per mantenere le massime prestazioni su siti con molti contenuti web statici.
Qual è la differenza tra Apache e NGINX?
Mentre NGINX e Apache HTTP Server sono simili, ci sono molte differenze tra i due. La più grande distinzione è il modo in cui questi server Web gestiscono più richieste dei client. Apache utilizza una soluzione biforcuta, mentre NGINX utilizza un ciclo di eventi non bloccante.
Apache fornisce MPM (Multi-Processing Modules) che stabiliscono come funziona la gestione delle richieste. L'approccio biforcuto semplifica lo scambio dell'architettura di gestione delle connessioni. I moduli utilizzati in questo approccio sono aggiunte alle funzionalità principali di Apache. Ciascun modulo multiprocessore avvia un processo diverso per la gestione delle richieste del server.
Un esempio è mpm-worker , un modulo che crea processi che gestiscono più thread. Ogni thread è una singola connessione al server. L'aggiunta di questo modulo consente la scalabilità del server e consente la gestione di grandi quantità di traffico.
NGINX è diverso e genera solo processi di lavoro per la gestione simultanea delle richieste. Questi processi sono eventi non bloccanti che controllano continuamente ed elaborano più richieste. Questo controllo continuo crea un loop. Tutti gli eventi nel ciclo sono asincroni e vengono rimossi dal ciclo quando la connessione si chiude.
Qual è il miglior software per server Web WordPress?
Sia Apache che NGINX funzionano bene con l'hosting WordPress. Tuttavia, NGINX potrebbe essere l'opzione migliore se desideri prestazioni migliori. Diamo un'occhiata a come installare WordPress su entrambi i tipi di server, così sarai pronto per iniziare con uno dei due.
Come installare WordPress su Apache
Per installare WordPress su Apache, dovrai configurare uno stack LAMP (Linux, Apache, MySQL e PHP). Questo è generalmente fatto su un server Ubuntu.
Passaggio 1: crea un utente Sudo sul tuo server
Per creare un utente, accedi al tuo server come utente root. Quindi utilizzare il comando add user di seguito per creare un nuovo account:
$ adduser username
Il server ti chiederà di impostare e confermare una password. Successivamente, inserisci i dettagli per l'utente. Quindi puoi fornire l'accesso sudo a quell'utente. Questo accesso consente all'utente di eseguire comandi che normalmente vengono completati dall'utente root.
Per aggiungere l'utente a un gruppo sudo , immetti il seguente comando:
$ usermod -aG sudo username
Quindi, ti consigliamo di accedere al server come utente sudo per il resto del processo di installazione.
Passaggio 2: installare Apache Web Server
Per installare Apache, dovrai utilizzare il gestore di pacchetti di Ubuntu apt . Questa è l'impostazione predefinita sui server Ubuntu. L'immissione del seguente comando sudo avvia l'installazione dopo aver inserito la password:
$ sudo apt update $ sudo apt install apache2
Vedrai quindi i pacchetti che verranno installati e quanto spazio su disco è richiesto. Premi Y e poi Invio per avviare l'installazione.
Passaggio 3: installa il server database MySQL
Successivamente, dovrai installare il sistema di gestione del database MySQL. Il seguente comando nel gestore pacchetti avvierà l'installazione:
$ sudo apt install mysql-server
I pacchetti e lo spazio su disco richiesti verranno nuovamente visualizzati. Per avviare l'installazione, premi Y e imposta la password di root.
Passaggio 4: installa PHP
PHP è la parte del tuo stack LAMP che elabora il codice in contenuto dinamico. Per installarlo, devi inserire il seguente comando:
$ sudo apt install php libapache2-mod-php php-mysql
PHP dovrebbe quindi installarsi senza problemi. Sarà necessario riavviare il server per completare l'installazione dello stack. Per fare ciò, inserisci il seguente comando:
$ sudo systemctl restart apache2
Il tuo stack LAMP è ora installato e configurato.
Passaggio 5: configurare gli host virtuali
Gli host virtuali incapsulano i dettagli di configurazione e sono un passaggio consigliato. L'incapsulamento consente di ospitare più di un sito Web su un server.
I server Apache impostano automaticamente le directory /var/www/html che sono ingombranti per più siti web. Per creare un host virtuale, dovrai impostare una struttura di directory in /var/www per il dominio del nuovo sito web.
Utilizzare il seguente comando per creare questa struttura:
sudo mkdir /var/www/new_domain
Cambia new_domain con il dominio del tuo sito web. Quindi crea un file index.html con contenuto di esempio utilizzando il comando nano :
$ nano /var/www/new_domain/index.html
Per assicurarti che Apache serva i tuoi contenuti, dovrai anche creare un file host. Il seguente comando crea il file di configurazione:
$ sudo nano /etc/apache2/sites-available/your_domain.conf
Quindi aggiungi il seguente blocco di configurazione:
<VirtualHost *:80> ServerAdmin [email protected] ServerName new_domain ServerAlias www.new_domain DocumentRoot /var/www/new_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Il comando successivo abilita il file, mentre il secondo disabilita il sito predefinito sul server:
$ sudo a2ensite new_domain.conf $ sudo a2dissite 000-default.conf
Il tuo host virtuale ora dovrebbe essere configurato e funzionante. Questa directory appena creata dovrebbe essere utilizzata per l'installazione di WordPress.
Passaggio 6: installa WordPress
Dopo aver configurato il tuo stack LAMP, puoi installare WordPress. Scarica l'ultima versione di WordPress e installala con il seguente comando:
$ sudo apt update $ sudo apt install wordpress php libapache2-mod-php mysql-server php-mysql
Successivamente, configura Apache per WordPress e crea il database MySQL. Quindi utilizzare l'interfaccia del browser Web di WordPress per completare la configurazione del sito Web. Ciò include la creazione di un titolo del sito e l'impostazione di una password.
Come installare WordPress su NGINX
Per installare WordPress su NGINX, è necessario un server che esegue una delle distribuzioni supportate da NGINX Unit. Se stai usando Linux, creerai uno stack LEMU (Linux, NGINX, MySQL e NGINX Unit).
Passaggio 1: installa MySQL
Prima di iniziare, crea un utente del server con accesso sudo . Accedi al tuo server come utente root e usa il seguente comando per creare un nuovo account:
$ adduser username
Dovrai inserire e confermare una password prima di compilare i dettagli per l'utente. Quindi puoi fornire l'accesso sudo a quell'utente. Questo accesso consente all'utente di eseguire comandi che sono normalmente completati dall'utente root.
Per aggiungere l'utente a un gruppo sudo , immetti il seguente comando:
$ usermod -aG sudo username
Accedi al server come utente sudo e usa il seguente comando per installare MySQL:
$ sudo apt-get install mysql-server
Inserisci una nuova password di root. Lo strumento di configurazione MySQL può quindi essere eseguito. Questa è una procedura guidata di configurazione che ti guida attraverso il processo di installazione.
Passaggio 2: crea un database MySQL
Una volta che MySQL è pronto, puoi creare un nuovo database. Dovrai anche creare un nuovo utente con autorizzazione di gestione. Per fare ciò, accedi all'account root di MySQL e inserisci i seguenti comandi:
$ sudo mysql -u root -p mysql> CREATE DATABASE wordpress; mysql> CREATE USER [email protected] IDENTIFIED BY 'secure_password'; mysql> GRANT ALL PRIVILEGES ON wordpress.* TO [email protected]; mysql> FLUSH PRIVILEGES; mysql> Exit Bye
Il comando Flush Privileges assicura che MySQL riconosca le modifiche apportate. È necessario modificare il nome utente e la password predefiniti in base alle proprie preferenze.
Passaggio 3: installa WordPress
Prima di installare WordPress, è necessario creare un percorso di file temporaneo utilizzando il seguente comando:
$ cd /var/www/ $ sudo wget http://wordpress.org/latest.tar.gz $ sudo tar xzvf latest.tar.gz
Questo comando scarica e decomprime anche WordPress.
Passaggio 4: configura WordPress
Quindi, crea una copia del file di configurazione di WordPress e rinominalo utilizzando i seguenti comandi:
$ cd /var/www/wordpress $ sudo cp wp-config-sample.php wp-config.php
Puoi aggiornare le chiavi SALT nel file per migliorare la sicurezza. L'utilizzo di nano apre il file wp-config.php e consente di cercare le chiavi SALT:
$ sudo nano wp-config.php
Sostituisci le chiavi con quelle appena generate, quindi salva ed esci dal file.
Passaggio 5: installa PHP
Sebbene tu possa utilizzare NGINX Unit, dovresti comunque installare PHP. È possibile utilizzare il seguente comando per farlo:
$ sudo apt-get install -y php7.0 php7.0-common php7.0-mbstring php7.0-gd php7.0-intl php7.0-xml php7.0-mysql php7.0-mcrypt
Ciò è necessario perché WordPress si basa su diverse estensioni che non sono incluse in NGINX Unit.
Passaggio 6: installare l'unità NGINX
Infine, dovrai installare l'unità NGINX precompilata per il sistema operativo del tuo server. Utilizzare il seguente comando per installare il modulo per PHP:
$ sudo apt-get install unit-php $ sudo service unit restart $ sudo curl -X PUT --data-binary @/usr/share/doc/unit-php/examples/unit.config --unix-socket /run/control.unit.sock http://localhost/config $ curl http://localhost:8300/
Questi comandi verificano anche che NGINX Unit e PHP funzionino correttamente.
Successivamente, è necessario installare e configurare NGINX Open Source. È possibile installare un pacchetto predefinito dal ramo della linea principale. Questi includono le funzionalità e le patch più recenti. Dopo questa configurazione, WordPress sarà pronto per l'uso.
Continua ad imparare con WP Engine
Apache e NGINX sono le opzioni software per server Web più popolari. Ma nella battaglia tra NGINX e Apache, chi vince? Sebbene siano simili in molti modi, il server NGINX offre prestazioni migliori per i siti Web ad alto traffico. Tuttavia, Apache ha una comunità più ampia con più documentazione.
Naturalmente, avrai bisogno di diverse cose per sviluppare un sito Web eccezionale. Questi includono gli strumenti giusti, le migliori risorse e un web hosting di prim'ordine!
Per ulteriori risorse SEO e relative al Web, come l'ottimizzazione di WordPress e la comprensione degli errori HTTP 400, consulta il nostro Centro risorse per migliorare il tuo sito.