Come installare Nginx e configurare su CentOS 8

Come installare Nginx e configurare su CentOS 8
Nginx è un server Web veloce e leggero. I file di configurazione di nginx sono davvero semplici e facili da lavorare. È un'ottima alternativa al server Web Apache. In questo articolo, ti mostrerò come installare e configurare Nginx Web Server su CentOS 8. Quindi iniziamo.

Installazione di nginx:

Nginx è disponibile nel repository di pacchetti ufficiali di CentOS 8. Quindi, è molto facile da installare.

Innanzitutto, aggiorna la cache del repository del pacchetto DNF come segue:

$ sudo dnf makecache

Ora, installa Nginx con il seguente comando:

$ sudo dnf installa nginx

Per confermare l'installazione, premere Y e poi premere .

Nginx dovrebbe essere installato.

Gestione del servizio NGINX:

Per impostazione predefinita, nginx il servizio dovrebbe essere inattivo (non in esecuzione) e Disabilitato (non avrà automaticamente avvio su avvio).

$ sudo systemctl status nginx

Puoi iniziare il nginx servizio come segue:

$ sudo systemctl avvia nginx

nginx il servizio dovrebbe essere corsa.

$ sudo systemctl status nginx

Ora, aggiungi nginx Servizio all'avvio del sistema come segue:

$ sudo systemctl abilita nginx

Configurazione del firewall:

È necessario configurare il firewall per consentire l'accesso alla porta HTTP 80 e alla porta HTTPS 443 per accedere al server Web NGINX da altri computer sulla rete.

È possibile consentire l'accesso alla porta HTTP e HTTPS con il seguente comando:

$ sudo firewall-cmd --add-service = http, https --permanent

Ora, affinché le modifiche abbiano effetto, esegui il seguente comando:

$ sudo firewall-cmd--ricarichi

Testare il server Web:

È necessario conoscere l'indirizzo IP o il nome di dominio del server Web Nginx per accedervi.

Puoi trovare l'indirizzo IP del tuo server Web Nginx con il seguente comando:

$ ip a

Nel mio caso, l'indirizzo IP è 192.168.20.175. Sarà diverso per te. Quindi, assicurati di sostituirlo con il tuo da ora in poi.

Ora, visita http: // 192.168.20.175 dal tuo browser web. Dovresti vedere la pagina seguente. Significa che il server Web Nginx funziona.

File di configurazione di nginx:

I file di configurazione del server Web Nginx sono in /etc/nginx/ directory.

$ albero /etc /nginx

/etc/nginx/nginx.conf è il principale file di configurazione Nginx.

La directory di root Web predefinita di Nginx Web Server è /usr/share/nginx/html/. Quindi, è qui che dovresti mantenere i file del tuo sito web.

Impostazione di un server Web di base:

In questa sezione, ti mostrerò come impostare un server Web NGINX di base.

Innanzitutto, prendi un backup del file di configurazione Nginx originale con il seguente comando:

$ sudo mv -v/etc/nginx/nginx.conf/etc/nginx/nginx.conf.originale

Ora, crea un nuovo file di configurazione Nginx come segue:

$ sudo nano/etc/nginx/nginx.conf

Ora, digita le seguenti righe in /etc/nginx/nginx.conf file e salva il file.

utente nginx nginx;
worker_processes auto;
ERROR_LOG/VAR/LOG/NGINX/ERROR.tronco d'albero;
PID /RUN /NGINX.PID;
eventi
worker_connections 1024;

http
includere/etc/nginx/mime.tipi;
DEFAULT_TYPE APPLICAZIONE/OTTET-STREAM;
server
Ascolta 80;
Esempio di server_name.com www.esempio.com;
root/usr/share/nginx/html;
indice indice.html;
Access_log/var/log/nginx/access.tronco d'albero;

Qui, utente l'opzione viene utilizzata per impostare l'utente e il gruppo NINGX Esegui nginx rispettivamente.

IL ERROR_LOG l'opzione viene utilizzata per impostare il percorso del file di registro di errore su /var/log/nginx/errore.tronco d'albero. È qui che verranno memorizzati gli errori relativi al server Nginx.

La configurazione principale del server Nginx è definita in server sezione all'interno del http sezione. Puoi definire più di uno server sezione all'interno del http sezione se necessario.

Nel server sezione,

Ascoltare L'opzione viene utilizzata per configurare NGINX per ascoltare la porta 80 (porta HTTP) per le richieste Web.

nome del server L'opzione viene utilizzata per impostare uno o più nomi di dominio per il server Web Nginx. Se le impostazioni DNS sono corrette, è possibile accedere al server Web Nginx utilizzando questi nomi di dominio.

Access_log viene utilizzato per impostare il percorso del file di registro di accesso su /var/log/nginx/access.tronco d'albero. Quando qualcuno cerca di accedere al server Web Nginx, le informazioni di accesso (i.e. Indirizzo IP, URL, Codice di stato HTTP) verrà registrato a questo file.

IL posizione L'opzione viene utilizzata per impostare la directory root del server Web Nginx.

Qui, il radice La directory è /usr/share/nginx/html/.

È qui che dovrebbero essere conservati tutti i file del sito Web. IL indice set di opzioni indice.html come file predefinito da servire se non viene richiesto alcun file specifico. Ad esempio, se visiti http: // 192.168.20.175/myfile.html, quindi tornerai nginx il mio file.html file. Ma, se visiti http: // 192.168.20.175/, quindi Nginx ti invierà l'indice.File HTML come non è stato richiesto alcun file specifico.

Ora rimuovi tutti i file dal /usr/share/nginx/html/ Directory (Web Root) come segue:

$ sudo rm -rfv/usr/share/nginx/html/*

Ora, crea un nuovo indice.html file in /usr/share/nginx/html/ directory come segue:

Ora, digita le seguenti righe in indice.html file e salva il file.

Ciao mondo


© 2020 Linuxhint.com

Ora, riavvia nginx servizio come segue:

$ sudo systemctl riavvio nginx

Ora, visita http: // 192.168.20.175 dal tuo browser web e dovresti vedere la pagina seguente. congratulazioni! Hai impostato il tuo primo server Web Nginx.

Configurazione di pagine di errore:

È possibile configurare le pagine di errore in nginx. Ad esempio, se una pagina/file/directory non è disponibile, il codice di stato HTTP 404 verrà restituito al browser. È possibile impostare una pagina di errore HTML personalizzata per il codice di stato HTTP 404 che verrà restituito al browser.

Per fare ciò, aggiungi la seguente riga in server sezione di nginx.conf file.

server
..
ERROR_PAGE 404 /404.html;
..

Ora, crea un file 404.html nella root Web Nginx /usr/share/nginx/html/ come segue:

$ sudo nano/usr/share/nginx/html/404.html

Ora, digita le seguenti righe in 404.html e salva il file.

Errore 404


pagina non trovata


© 2020 Linuxhint.com

Ora, riavvia nginx servizio come segue:

$ sudo systemctl riavvio nginx

Ora, prova ad accedere a un percorso inesistente (http: // 192.168.20.175/nopage.html) e dovresti vedere la seguente pagina di errore.

Se la 404.html Il file è in un percorso di filesystem diverso (diciamo /usr/share/nginx/html/errori/ directory), puoi mappare l'URL /404.html ad esso come segue:

server
..
ERROR_PAGE 404 /404.html;
Posizione /404.html
root/usr/share/nginx/html/errori;

..

Ora, crea una nuova directory /usr/share/nginx/html/errori/ come segue:

$ sudo mkdir/usr/share/nginx/html/errori

Ora, crea un nuovo file 404.html nella directory /usr/share/nginx/html/errori/ come segue:

$ sudo nano/usr/share/nginx/html/errori/404.html

Ora, digita le seguenti righe in 404.html file e salva il file.

PAGINA NON TROVATA


TORNA A CASA

Ora, riavvia nginx servizio come segue:

$ sudo systemctl riavvio nginx

Ora, prova ad accedere a un percorso inesistente (http: // 192.168.20.175/nopage.html) e dovresti vedere la pagina di errore aggiornata.

Allo stesso modo, è possibile impostare la pagina di errore per altri codici di stato HTTP.

È inoltre possibile impostare la stessa pagina di errore per più codici di stato HTTP. Ad esempio, per impostare la stessa pagina di errore /404.html Per i codici di stato HTTP 403 E 404, Scrivi la ERROR_PAGE Opzione come segue:

ERROR_PAGE 403 404 /404.html;

Configurazione dei registri:

In nginx, il ERROR_LOG E Access_log Le opzioni vengono utilizzate per la registrazione dei messaggi di errore e delle informazioni di accesso.

Il formato del ERROR_LOG E Access_log Le opzioni sono:

ERROR_LOG/PATH/TO/ERRORE/LOG/FILE [OPZIONALE: NAME-Log Custom];
access_log/path/to/access/log/file [opzionale: log-name];

È possibile definire i formati del registro degli errori e dell'accesso.

Per fare ciò, usa il log_format opzione in http sezione per definire il formato di registro personalizzato come segue.

http
..
log_format semplice '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
..
server
..
Access_log/var/log/nginx/access.registro semplice;
..

Qui, il nome del formato di registro è semplice. Alcune variabili Nginx vengono utilizzate per definire il formato di registro personalizzato. Visita il manuale delle variabili incorporate Nginx per conoscere tutte le variabili Nginx.

Il formato di registro personalizzato deve essere racchiuso in singoli citazioni. Il formato del registro può essere definito in una singola riga o in più righe. Ho mostrato come definire il formato del registro in più righe in questo articolo. Non avrai problemi con il formato del registro a riga singola, fidati di me!

Una volta il formato del registro semplice è definito, Access_log L'opzione viene utilizzata per dire a Nginx di utilizzarla come registro di accesso.

Allo stesso modo, è possibile impostare un formato di registro di errore personalizzato utilizzando il ERROR_LOG opzione.

Ho configurato solo il formato di registro personalizzato per il registro di accesso in questo articolo.

Ora, riavvia nginx servizio come segue:

$ sudo systemctl riavvio nginx

Ora puoi monitorare il file di registro di accesso come segue:

$ sudo tail -f/var/log/nginx/access.tronco d'albero

È inoltre possibile monitorare il file di registro degli errori come segue:

$ sudo tail -f/var/log/nginx/errore.tronco d'albero

Se lo si desidera, è possibile monitorare i file di registro di accesso ed errori contemporaneamente:

$ sudo tail -f/var/log/nginx/errore, accesso.tronco d'albero

Come puoi vedere, viene utilizzato il nuovo formato del registro di accesso.

Negare l'accesso a determinati percorsi:

È possibile utilizzare espressioni regolari per abbinare determinati percorsi URI e negare l'accesso ad esso in NGINX.

Diciamo che il tuo sito web è gestito da Git e vuoi negare l'accesso al .idiota/ Directory sulla tua root web.

Per fare ciò, digita le seguenti righe in server sezione di /etc/nging/nginx.conf file:

server
..
Posizione ~ \.idiota
Nega tutto;

..

Come puoi vedere, l'accesso a qualsiasi percorso che contiene .idiota è negato.

Configurazione della compressione:

È possibile comprimere i contenuti web prima di inviarli al browser utilizzando gzip Per salvare l'utilizzo della larghezza di banda del server Web Nginx.

Ho alcune immagini JPEG in /usr/share/nginx/html/immagini/ directory.

Posso accedere a queste immagini usando il percorso URI /immagini.

Per abilitare la compressione GZIP solo per le immagini JPEG nel percorso URI /immagini, digitare le seguenti righe in server sezione di /etc/nginx/nginx.conf file.

server
..
posizione /immagini
gzip on;
gzip_comp_level 9;
gzip_min_length 100000;
Gzip_Types Image/JPEG;

..

Qui, gzip_comp_level viene utilizzato per impostare il livello di compressione. Può essere qualsiasi numero da 1 a 9. Più alto è il livello, più piccolo sarà il file compresso.

Il file verrà compresso solo se la dimensione del file è sopra gzip_min_length. L'ho impostato su circa 100 kb in questo esempio. Quindi, i file JPEG inferiori a 100 kb non saranno compressi GZIP.

IL gzip_types viene utilizzato per impostare il tipo MIME di file che verranno compressi.

È possibile trovare il tipo di mimo dalle estensioni dei file come segue:

$ grep jpg/etc/nginx/mime.tipi

Come puoi vedere, per .jpg O .jpeg Estensione del file, il tipo MIME è immagine/jpeg.

È possibile impostare uno o più tipi di mime utilizzando gzip_types opzione.

Se si desidera impostare più tipi MIME, assicurati di separarli con gli spazi come segue:

"
Gzip_Types Image/JPEG Image/PNG Image/GIF;

Ora, riavvia nginx servizio come segue:

$ sudo systemctl riavvio nginx

Come puoi vedere, Nginx invia file di immagine compresso GZIP al browser quando richiesto.

Come puoi vedere nello screenshot di seguito, il file compresso GZIP è più piccolo del file originale.

$ sudo tail -f/var/log/nginx/access.tronco d'albero

Abilitazione di HTTPS:

È possibile abilitare SSL in nginx molto facilmente. In questa sezione, ti mostrerò come impostare il certificato SSL autofirmato in NGINX.

Innanzitutto, navigare verso il /etc/ssl/ directory come segue:

$ cd /etc /ssl

Ora, genera un tasto SSL server.chiave e certificato server.Crt con il seguente comando:

$ sudo openssl req -x509 -nodes -days 365 -newkey RSA: 2048 -Keyout
server.Chiave -out server.Crt

NOTA: Tu devi avere OpenSSL installato affinché questo funzioni. Se il comando OpenSSL non è disponibile, installa OpenSSL con il seguente comando:

$ sudo dnf installa openssl -y

Ora, digita il tuo codice paese a 2 lettere (i.e. Stati Uniti per USA, Regno Unito per il Regno Unito, RU per la Russia, CN per la Cina) e stampa .

Ora, digita il nome e la stampa del tuo stato/provincia .

Ora, digita il nome della tua città e la stampa .

Ora, digita il nome della tua azienda e la stampa .

Ora, digita il nome dell'unità organizzativa della tua azienda che utilizzerà questo certificato e premi .

Ora, digita il nome di dominio completamente qualificato (FQDN) del tuo server Web Nginx e premere . Il certificato SSL sarà valido solo se si accede al server Web Nginx utilizzando questo nome di dominio.

Ora, digita il tuo indirizzo email e premere .

Il tuo certificato SSL dovrebbe essere pronto.

Il certificato e la chiave SSL devono essere generati in /etc/ssl/ directory.

$ ls -lh

Ora apri il file di configurazione Nginx /etc/nginx/nginx.conf e cambiare Ascoltare porto a 443 e digitare le seguenti righe in server sezione.

server
..
SSL ON;
ssl_certificate/etc/ssl/server.CRT;
ssl_certificate_key/etc/ssl/server.chiave;
..

Ora, riavvia nginx servizio come segue:

$ sudo systemctl riavvio nginx

Nella vita reale, avrai una configurazione DNS corretta. Ma a scopo di test, ho configurato il nome di dominio basato su file locale sul computer che ho usato per accedere al server Web Nginx.

Se vuoi seguire, apri il /etc/host file come segue:

$ sudo nano /etc /host

Quindi, aggiungi la riga seguente al /etc/host file.

192.168.20.175 www.esempio.com

Ora, prova a visitare https: // www.esempio.com e dovresti vedere la pagina seguente. Vedrai La tua connessione non è sicura messaggio perché è un certificato autofirmato. Questo è buono solo per lo scopo del test.

Nella vita reale, acquisterai certificati SSL dalle autorità di certificazione (CAS) e li utilizzerai. Quindi, non vedrai questo tipo di messaggio.

Come puoi vedere, Nginx ha servito la pagina Web su HTTPS. Quindi, SSL funziona.

Le informazioni SSL di WWW.esempio.com.

Reindirizzamento delle richieste HTTP a HTTPS:

Se qualcuno visita il tuo sito Web su HTTP Protocol (http: // www.esempio.com o http: // 192.168.20.175) invece di https (https: // www.esempio.com), non vuoi rifiutare la richiesta HTTP. Se lo fai, perderai un visitatore. Quello che dovresti davvero fare è reindirizzare l'utente al sito abilitato SSL. È davvero semplice da fare.

Innanzitutto, aprire il file di configurazione Nginx /etc/nginx/nginx.conf e crea un nuovo server sezione all'interno del http sezione come segue:

http
..
server
Ascolta 80;
server_name www.esempio.com;
return 301 https: // www.esempio.com $ request_uri;

..

Questa è la finale /etc/nginx/nginx.conf file:

utente nginx nginx;
worker_processes auto;
ERROR_LOG/VAR/LOG/NGINX/ERROR.tronco d'albero;
PID /RUN /NGINX.PID;
eventi
worker_connections 1024;

http
includere/etc/nginx/mime.tipi;
DEFAULT_TYPE APPLICAZIONE/OTTET-STREAM;
log_format semplice '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
server
Ascolta 80;
server_name www.esempio.com;
return 301 https: // www.esempio.com $ request_uri;

server
Ascolta 443;
server_name www.esempio.com;
SSL ON;
ssl_certificate/etc/ssl/server.CRT;
ssl_certificate_key/etc/ssl/server.chiave;
Access_log/var/log/nginx/access.registro semplice;
posizione /
root/usr/share/nginx/html;
indice indice.html;

posizione /immagini
gzip on;
gzip_comp_level 9;
gzip_min_length 100000;
Gzip_Types Image/JPEG;

ERROR_PAGE 404 /404.html;
Posizione /404.html
root/usr/share/nginx/html/errori;

Posizione ~ \.idiota
Nega tutto;


Ora, riavvia nginx servizio come segue:

$ sudo systemctl riavvio nginx

Ora, se provi ad accedere a http: // 192.168.20.175 o http: // www.esempio.com, verrai reindirizzato a https: // www.esempio.com.

Quindi, è così che installi e configuri Nginx Web Server su CentOS 8. Grazie per aver letto questo articolo.