Cos'è Nginx?
Nginx (pronunciato "motore X") è un'alternativa ad Apache ed è considerato uno dei server Web HTTP più popolari al mondo. A differenza di Apache, Nginx tende a consumare meno risorse e migliora la reattività del server. Il suo design basato sugli eventi è ciò che lo rende favorevole alle risorse.
Soprattutto, consente agli amministratori di impostare configurazioni avanzate e può gestire un carico elevato di connessioni simultanee. Oltre ad essere adatto per un server Web HTTP, Nginx funziona anche come proxy inverso, bilanciatore del carico e server di posta standard.
In questo articolo imparerai come installare e configurare Nginx su CentOS 7 .
Prerequisiti
- Un server o VM autogestito CentOS
- Un dominio. Dovrai connettere un dominio al tuo server web Nginx
- Sudo o root privilegi [[email protetta] ~]
- SELinux configurato correttamente
Come installare Nginx su CentOS 7
In generale, CentOS è il pacchetto di distribuzione preferito nel settore dell'hosting. Attualmente, CentOS 8 è l'ultima versione, mentre CentOS 7 è supportato fino all'anno 2024.
La procedura di configurazione seguente descrive in dettaglio i passaggi necessari per configurare Nginx su CentOS 7.
Per le istruzioni di installazione per CentOS 8, leggi Come installare Nginx su CentOS 8.
Fase 1:aggiorna gli elenchi dei pacchetti del repository
Per farlo, esegui il seguente comando:
sudo yum -y update
-y
è un parametro opzionale. Serve per evitare domande di conferma. Lo useremo molto, come noterete. Se non utilizzi questo parametro, ti verrà chiesto di confermare i tuoi comandi.
Fase 2:installa pacchetti extra per Enterprise Linux (EPEL)
Nginx non è disponibile nei repository standard forniti con il pacchetto CentOS, quindi dovrai installare il repository EPEL sul tuo server. EPEL è gratuito e fornisce numerosi pacchetti open source da installare con Yum.
Per installare EPEL, esegui il seguente comando utilizzando il gestore di pacchetti Yum:
sudo yum install -y epel-release
Fase 3:installa Nginx
Il passaggio numero due ha aggiunto il repository Nginx al tuo server. Ora puoi installare Nginx eseguendo il seguente comando yum:
sudo yum –y install nginx
Fase 4:avvia il servizio Nginx
La tua istanza di Nginx è installata, ma non si avvia automaticamente.
Per avviare Nginx, esegui:
sudo systemctl start nginx
Dopo aver premuto invio, non otterrai un valore di ritorno. Tuttavia, Nginx avrebbe dovuto iniziare. Per verificarne lo stato, esegui:
sudo systemctl status nginx
Dovrebbe esserci un pezzo di testo verde che dice "attivo (in esecuzione)." Se non riesci a trovarlo, la tua istanza di Nginx potrebbe non essere stata avviata correttamente.
Passaggio 5:configura Nginx per l'avvio all'avvio
La maggior parte degli amministratori vorrà assicurarsi che NGINX si avvii automaticamente ogni volta che il server si riavvia. Per configurarlo, esegui:
sudo systemctl enable nginx
Passaggio 6:configura il firewall per consentire il traffico
CentOS 7 abilita i firewall per impostazione predefinita e blocca l'accesso alle porte 80 e 443. Blocca tutti i pacchetti HTTPS e HTTP in entrata da Nginx.
Per consentire il traffico HTTP e HTTPS, esegui i seguenti comandi:
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload
Dopo ogni comando, dovresti vedere success
indicando che il comando è stato eseguito correttamente.
Passaggio 7:verifica l'installazione di Nginx
Il modo più semplice per verificare se Nginx funziona correttamente è visitare l'indirizzo IP pubblico del tuo server. Basta aprire il browser web e visitare http://server_IP_or_domain_name /
Innanzitutto, trova l'indirizzo IP pubblico del tuo server.
ip a
Il nostro indirizzo IP è 192.168.122.1/24 . Copia il tuo indirizzo IP e incollalo nel tuo browser. Questo dovrebbe caricare il Benvenuto in Nginx pagina.
Come risolvere l'errore "test fallito"
Se ricevi un "test fallito" messaggio di errore per il file nginx.conf, potresti riscontrare un problema con l'indirizzo IP.
Il servizio Nginx ascolta IPv4 e IPv6, per impostazione predefinita. Il test fallirà se il tuo server non supporta IPv6. Tuttavia, questo può essere risolto modificando il file di configurazione principale.
Apri il file di configurazione principale, /etc/nginx/nginx.conf . Trova e commenta la seguente riga:
listen [::]:80 default_server;
Basta aggiungere "#" all'inizio della riga. Dovrebbe assomigliare a questo:
# listen [::]:80 default_server;
Salva le modifiche apportate e ricarica il servizio Nginx.
sudo systemctl reload nginx
Cerca l'indirizzo IP del tuo server nel tuo browser. Dovresti vedere la pagina di test di Nginx predefinita.
File di configurazione e root di Nginx
Avrai sicuramente bisogno di conoscere la posizione dei file di configurazione di Nginx e la directory principale del server Nginx predefinita.
Blocchi server aggiuntivi
Su Apache, gli amministratori utilizzano host virtuali per eseguire più siti Web. Con Nginx, l'esecuzione di più siti Web su un unico server viene eseguita con blocchi di server.
Ulteriori blocchi server vengono aggiunti creando nuovi file di configurazione con estensione .conf. Inserisci questi file in /etc/nginx/conf.d e verranno caricati ogni volta che Nginx si avvia.
Root del server Nginx predefinito
La directory principale del server Nginx predefinita è /usr/share/nginx . Questo è specificato nel file di configurazione del blocco del server predefinito, che si trova in /etc/nginx/conf.d/default.conf .
La directory principale dei documenti del server predefinita che contiene i file Web è usr/share/nginx/html .
Configurazione globale
Le configurazioni globali possono essere modificate modificando il file di configurazione Nginx principale che si trova in /etc/nginx/nginx.conf . Questo file di configurazione è suddiviso in contesti. Per impostazione predefinita, puoi identificare tre (3) contesti.
- Eventi sono impostazioni globali che definiscono come Nginx gestisce le connessioni in generale.
- HTTP definisce come il server gestisce le connessioni HTTP e HTTPS.
- Server è definito all'interno del contesto HTTP. Specifica le porte del server, la radice del documento, ecc.
Puoi sempre aggiungere ulteriori contesti.
Gestire Nginx – Attività comuni
Interrompi Nginx
Per fermare un server Nginx, esegui:
sudo systemctl stop nginx
Riavvia Nginx
Per riavviare il servizio Nginx, esegui:
sudo systemctl restart nginx
Ricarica Nginx
Se hai apportato alcune modifiche alle modifiche alla configurazione principale di Nginx. Devi ricaricare il server per propagare le modifiche.
sudo systemctl reload nginx
Disabilita l'avvio automatico all'avvio
Se non vuoi che Nginx si avvii automaticamente all'avvio, esegui:
sudo systemctl disable nginx
Configurazione di una nuova directory
Se stai ospitando più siti Web, una buona regola pratica è seguire le convenzioni di denominazione standard. Usiamo la denominazione standard di cPanel e creiamo una directory.
sudo mkdir -p /var/www/yourdomain.com/public_html
La prossima cosa di cui hai bisogno è una pagina indice. Questo ti aiuterà a testare la configurazione.
sudo nano /var/www/yourdomain.com/public_html/index.html
A scopo di test, inserisci una singola riga di testo in index.html. Salva e chiudi il file.
Modifica le autorizzazioni dei file Linux, in modo che i dati siano accessibili online.
sudo chmod 755 /var/www/yourdomain.com/public_html
Prova ad aprire la pagina index.html. Dovrebbe essere disponibile online.