Nginx Reindirizza HTTP a HTTPS

Nginx Reindirizza HTTP a HTTPS
Nginx, pronunciato come "motore x", è un Web ad alte prestazioni gratuito e open-source a base di Linux e un server proxy inverso responsabile della gestione e della gestione del carico del traffico dei siti Web più grandi su Internet. Nginx è un potente strumento di reindirizzamento che può essere configurato facilmente sul sistema per reindirizzare il traffico Web HTTP meno sicuro o non crittografato a un server Web HTTPS crittografato e protetto. Se sei un amministratore di sistema o uno sviluppatore, stai utilizzando regolarmente il server Nginx.

In questo articolo, lavoreremo su come reindirizzare il traffico web da HTTP a un HTTPS sicuro in NGINX.

Le risposte e le richieste vengono restituite sotto forma di testo in chiaro in HTTP, mentre l'HTTPS utilizza SSL/TLS per crittografare la comunicazione tra il sistema client e server. Pertanto, per molte ragioni, HTTPS viene utilizzato su HTTP, che sono elencati di seguito:

  • Tutti i dati tra il server client in entrambe le direzioni sono crittografati. Tuttavia, chiunque non può accedere a informazioni sensibili se intercettato.
  • Quando si utilizza HTTPS, Google Chrome e altri browser considereranno il dominio del tuo sito Web sicuro.
  • La versione HTTPS migliora le prestazioni del sito Web specificate utilizzando il protocollo HTTP/2.
  • Se servi il dominio del tuo sito Web tramite HTTPS, il sito Web si classificherà meglio su Google, poiché favorisce tutti i siti Web protetti HTTPS.

Si preferisce reindirizzare il traffico HTTP a HTTPS in NGINX in un blocco server separato per ciascuna versione del sito. Si consiglia inoltre di evitare di reindirizzare il traffico usando la direzione "if" che può causare un comportamento insolito del server.

Reindirizza tutto il traffico da HTTP a HTTPS

Aggiungi le seguenti modifiche al file di configurazione Nginx per reindirizzare tutto il traffico da HTTP alla versione HTTPS:

server
Ascolta 80 Default_Server;
nome del server _;
return 301 https: // $ host $ request_uri;

Di seguito, abbiamo elaborato ogni termine sopra menzionato:

Ascolta 80 Default_Server - Questo segnalerà il tuo sistema che cattura tutto il traffico HTTP sulla porta 80.
Server_name _ - È il dominio che corrisponderà a qualsiasi nome host.

Restituisce 301 https: // $ host $ request_uri - Questo dice ai tuoi motori di ricerca che lo reindirizzano in modo permanente. Specifica che l'host $ variabile detiene i nomi di dominio.

Una volta modificate le impostazioni di configurazione, è necessario ricaricare i servizi NGINX sul sistema. Quindi, ricarica i tuoi servizi Nginx utilizzando il seguente comando:

$ sudo systemctl ricarica nginx

Reindirizzare HTTP alla versione HTTPS per il dominio specificato in NGINX

Dopo aver installato il certificato SSL sul tuo dominio, avrai due opzioni di blocchi di server per questo dominio. Un blocco è per la versione HTTP che ascolta sulla porta 80 e la seconda versione è HTTPS sulla porta 443. Tuttavia, per reindirizzare un singolo dominio del sito Web da HTTP a HTTPS, è necessario aprire la configurazione NGINX. È possibile individuare questo file di configurazione nella directory disponibile/nginx/siti. In ogni caso, se non hai trovato questo file, puoi cercarlo con/etc/nginx/nginx.conf,/usr/local/nginx/conf o/usr/local/etc/nginx, quindi eseguire le seguenti modifiche in questo file:

server
Ascolta 80;
Server_name Domain-Name.com www.nome del dominio.com;
return 301 https: // domain-name.com $ request_uri;

Comprendiamo la riga di codice sopra per riga.
Ascolta 80 - Utilizzando la porta 80, il server ascolterà tutte le connessioni in arrivo il dominio specificato.

Server_name Domain-Name.com www.nome del dominio.com - Specifica i nomi del dominio. Quindi, sostituiscilo con il nome di dominio del tuo sito Web che si desidera reindirizzare.

Return 301 https: // domain-name.com $ request_uri - sposta il traffico alla versione HTTPS del sito. La variabile $ request_uri viene utilizzata per l'intera richiesta originale URI in cui sono inclusi gli argomenti.

Utilizzando il seguente metodo, è possibile reindirizzare il traffico alla versione HTTPS WWW alla versione non WWW del sito. Si consiglia di creare un reindirizzamento in un blocco server separato per le versioni non WWW e WWW.

Spieghiamo con un esempio. Se si desidera reindirizzare le richieste HTTPS WWW alla versione non WWW, seguiresti la seguente configurazione:

server
Ascolta 80;
Server_name Domain-Name.com www.nome del dominio.com;
return 301 https: // domain-name.com $ request_uri;

server
Ascolta 443 SSL HTTP2;
server_name www.nome del dominio.com;
#... altro codice
return 301 https: // domain-name.com $ request_uri;

server
Ascolta 443 SSL HTTP2;
Server_name Domain-Name.com;
#... altro codice

Sostituisci il nome di dominio con il tuo dominio, come www.Linuxhint.com.

Conclusione

Abbiamo discusso di come reindirizzare il traffico dalla versione HTTP all'HTTPS sul server Nginx. Modificando l'impostazione del file di configurazione Nginx, è possibile reindirizzare facilmente il traffico a HTTPS per un dominio specificato o reindirizza tutto. Questo metodo, che abbiamo menzionato in questo articolo, può aiutarti a rendere il tuo sito Web più sicuro apportando eventuali modifiche all'esperienza dell'utente.