Prerequisiti
Prima di tutto, questa guida presuppone che l'utente abbia installato un client SSH appropriato sul computer, in caso contrario procedere con l'installazione di Putty come client, quindi utilizzare i seguenti comandi. Inoltre, avendo Nginx, è richiesto anche l'editor Nano.
- Digita i seguenti comandi per installare l'editor di testo Nano. Il primo comando aiuta a recuperare i pacchetti più recenti dai repository e il secondo comando installa l'ultima versione dell'editor di testo nano.
sudo apt-get install nano
- Nella finestra del terminale, digita il seguente comando per cambiare la directory corrente nella directory nginx.
- Ora digita nano predefinito oppure il nome del file associato al dominio per modificare le impostazioni del dominio.
- Da ora segui uno dei seguenti segmenti per procedere.
Reindirizzamento da HTTP (porta 80)
Google, Bing e molti altri motori di ricerca oggigiorno favoriscono i siti con una connessione crittografata. Quando la connessione tra il client e il server è crittografata, i dati che trasmettono attraverso quella particolare connessione sono sicuri e quindi le terze parti non sono in grado di accedere a tali dati. Quando la connessione non è crittografata, tali siti non sono sicuri e quindi compromettono la sicurezza dei dati. Il sito Web non sicuro utilizza la porta 80 per fornire il proprio servizio al pubblico. Sfortunatamente, per impostazione predefinita il browser Web si connette con la porta 80, poiché il server Web presuppone che sia ciò che il client desidera per impostazione predefinita e quindi la richiesta deve essere reindirizzata alla sua versione protetta. Ci sono diversi modi per farlo con Nginx.
Metodo 1
Se il nome di dominio corrente è disponibile e riceve richieste dai client, è possibile reindirizzarli a un altro dominio con il seguente frammento di codice. Copialo semplicemente nel file predefinito o nel file del dominio.
Il parametro server predefinito specifica che questo blocco server è il server predefinito, quindi qualsiasi richiesta alla porta 80 esegue inizialmente questo blocco server per impostazione predefinita, quindi segue il resto. La parentesi significa che cattura anche le richieste dalle reti ipv6. Return 310 significa che il reindirizzamento è permanente e quindi il link juice viene passato insieme ad esso.
serverascolta 80 default_server;
ascolta [::]:80 default_server;
nome_server dominio.com www.dominio.com;
ritorno 301 https://dominio.com$request_uri;
Metodo 2
Se il server corrente non ha un sito Web collegato e il requisito è reindirizzare eventuali richieste alla porta 80, è possibile utilizzare il seguente blocco server. Copialo nel file predefinito come affermato in precedenza. Qui _ (sottolineatura) indica qualsiasi dominio. Come in precedenza, anche qui è possibile utilizzare il parametro default_server, le parentesi (per gli indirizzi IPv6) come attributi opzionali optional.
serverascolta 80 default_server;
nome del server _;
restituisce 301 https://$host$request_uri;
Metodo 3
Il seguente frammento di codice indica che se la connessione non è crittografata, ovvero la porta 80 riceve le richieste, vengono reindirizzate a una versione sicura del dominio specificato. Questo dovrebbe essere copiato ovunque nel blocco server , ma dopo il parametro server_name.
if ($schema != "https")restituisce 301 https://$host$request_uri;
Reindirizzamento dall'indirizzo IP
A differenza di un host condiviso, sia i server dedicati che i server privati virtuali hanno sempre un indirizzo IP dedicato allocato ad esso. Se il server Web è configurato con Nginx con trattino basso (che significa che il server elabora ogni richiesta), anche qualsiasi richiesta all'indirizzo IP ottiene l'accesso al sito Web. Avere accesso al sito Web tramite un indirizzo IP non è qualcosa che ogni web master desidera per vari motivi. D'altra parte, se ogni richiesta viene elaborata, gli utenti malintenzionati possono associare qualsiasi dominio casuale al server web, il che non va bene per il nome del marchio o dell'azienda, e quindi è importante elaborare solo le richieste a domini specifici o e indirizzo IP. Questo segmento mostra in questi casi come elaborare le richieste all'indirizzo IP del server web. L'utilizzo di questo blocco di codice insieme a uno dei blocchi di codice sopra (eccetto il metodo 2 della soluzione precedente) garantisce che ogni richiesta a entrambi i domini e l'IP venga reindirizzato alla destinazione desiderata.
Come detto sopra, copia il seguente frammento di codice nel file predefinito di Nginx (prerequisiti, terzo passaggio). Invece di utilizzare il nome del dominio nel parametro server_name, utilizzare semplicemente l'indirizzo IP del server, quindi nella riga successiva utilizzare "return 301 domain" a cui viene reindirizzata la richiesta. Ora, quando una richiesta a questo particolare indirizzo IP viene ricevuta sul server, viene reindirizzata al dominio indicato. Un esempio migliore è quando un utente casuale digita l'IP del server Web per accedere direttamente al sito. Se il seguente frammento di codice non è indicato da nessuna parte nel file predefinito, qualsiasi richiesta all'IP non viene elaborata; quindi gli utenti non sono in grado di accedere al sito web tramite l'indirizzo IP.
serverascolta 80;
ascolta [::]:80;
ascolta 443 ssl http2;
ascolta [::]:443 ssl http2;
nome_server 192.168.1.1;
ritorno 301 https://nucuta.com;
Reindirizza da qualsiasi altro dominio
Questa soluzione è la stessa della prima soluzione di questa guida, tranne per il fatto che reindirizza anche le richieste alla porta 443 del server Web, il che significa che sia le richieste protette che quelle non protette vengono reindirizzate al dominio indicato nel parametro di ritorno. Come detto in precedenza, copia semplicemente questo nel file predefinito.
serverascolta 80;
ascolta [::]:80;
ascolta 443 ssl http2;
ascolta [::]:443 ssl http2;
nome_server dominio.com www.dominio.com;
ritorno 301 https://nucuta.com;
finalizzazione
Dopo aver seguito una delle soluzioni di cui sopra, il file nginx deve essere compilato per rendere effettiva la sua configurazione. Tuttavia, il file predefinito deve essere testato prima della compilazione, poiché impedisce il crash del server Web se si è verificato un errore nella configurazione.
- Usa semplicemente il seguente comando nel terminale Linux per testare il file di configurazione predefinito, se il risultato è buono vai al passaggio successivo.
- Usa uno dei seguenti comandi per riavviare il server web Nginx. Il comando dipende dal nome e dalla versione della distribuzione Linux.
sudo service nginx reload
sudo /etc/init.d/nginx ricarica