Nginx Reindirizza HTTP a HTTPS

Nginx Redirect Http Https



Nginx, pronunciato come Engine x, è un web ad alte prestazioni basato su Linux gratuito e open source e un server proxy inverso responsabile della gestione e della gestione del carico del più grande traffico di siti Web su Internet. Nginx è un potente strumento di reindirizzamento che può essere configurato facilmente sul tuo 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 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 client-server in entrambe le direzioni sono crittografati. Tuttavia, nessuno può accedere alle informazioni sensibili se intercettate.
  • Quando utilizzi HTTPS, Google Chrome e altri browser considereranno sicuro il dominio del tuo sito web.
  • La versione HTTPS migliora le prestazioni del sito Web specificato utilizzando il protocollo HTTP/2.
  • Se servi il dominio del tuo sito Web tramite HTTPS, il sito Web avrà un posizionamento migliore su Google, poiché favorisce tutti i siti Web protetti da HTTPS.

È preferibile reindirizzare il traffico da HTTP a HTTPS in Nginx in un blocco di server separato per ogni versione del sito. Si consiglia inoltre di evitare di reindirizzare il traffico utilizzando la direzione che potrebbe causare un comportamento insolito del server.



Reindirizza tutto il traffico da HTTP a HTTPS

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





server {
Ascoltare 80default_server;
nome del server _;
Restituzione 301https: //$host$request_uri;
}

Di seguito, abbiamo elaborato ciascun termine sopra menzionato:

Ascolta 80 default_server: questo segnalerà al tuo sistema che cattura tutto il traffico HTTP sulla porta 80.
Server_name _ – è il dominio che corrisponderà a qualsiasi hostname.



Restituisci 301 https://$host$request_uri – questo dice ai tuoi motori di ricerca che lo reindirizzano in modo permanente. Specifica che la variabile $host contiene i nomi di dominio.

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

$sudosystemctl ricarica nginx

Reindirizza HTTP alla versione HTTPS per il dominio specificato in Nginx

Dopo aver installato il certificato SSL sul tuo dominio, avrai due opzioni di blocchi server per questo dominio. Un blocco è per la versione HTTP in ascolto 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 di Nginx. È possibile individuare questo file di configurazione nella directory /etc/nginx/sites-available. 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 il seguenti modifiche in questo file:

server {
Ascoltare 80;
nome del server nome-dominio.com www.nome-dominio.com;
Restituzione 301https://nome-dominio.com$request_uri;
}

Comprendiamo il codice sopra riga per riga.
Ascolta 80: utilizzando la porta 80, il server ascolterà tutte le connessioni in entrata del dominio specificato.

Nome_server nome-dominio.com www.nome-dominio.com – specifica i nomi di dominio. Quindi, sostituiscilo con il nome di dominio del tuo sito web che desideri 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'intero URI della richiesta originale in cui sono inclusi anche gli argomenti.

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

Spieghiamo con un esempio. Se desideri reindirizzare le richieste HTTPS www alla versione non www, segui la seguente configurazione:

server {
Ascoltare 80;
nome del server nome-dominio.com www.nome-dominio.com;
Restituzione 301https://nome-dominio.com$request_uri;
}
server {
Ascoltare 443 ssl http2;
nome del server www.nome-dominio.com;
# . . . altro codice
Restituzione 301https://nome-dominio.com$request_uri;
}
server {
Ascoltare 443 ssl http2;
nome del server nome-dominio.com;

# . . . altro codice
}

Sostituisci il nome di dominio con il tuo dominio, ad esempio www.linuxhint.com.

Conclusione

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