Nginx

Come reindirizzare gli URL in Nginx

Come reindirizzare gli URL in Nginx
Nginx è un server Web leggero, che viene spesso utilizzato anche come proxy inverso, server Web e bilanciatore del carico. Nginx, per impostazione predefinita, offre molte funzioni utili e altre possono essere aggiunte come moduli durante l'installazione. Questa guida intende dimostrare come utilizzare Nginx per reindirizzare gli URL in direzioni diverse. Anche se Nginx fornisce una miriade di funzionalità per reindirizzare gli URL, questa guida ne utilizza una frazione poiché l'intenzione è quella di insegnare solo quelle essenziali nel reindirizzamento degli URL. Le aree trattate in questa guida sono reindirizzare URL non sicuri (porta 80) alla sua versione protetta, reindirizzare una richiesta all'IP a un nome di dominio e infine reindirizzare qualsiasi altro sottodominio, dominio al dominio principale.

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.

  1. 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 update
sudo apt-get install nano
  1. Nella finestra del terminale, digita il seguente comando per cambiare la directory corrente nella directory nginx.
cd /etc/nginx/sites-available
  1. Ora digita nano predefinito oppure il nome del file associato al dominio per modificare le impostazioni del dominio.
  2. 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.

server
ascolta 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.

server
ascolta 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.

server
ascolta 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.

server
ascolta 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.

  1. Usa semplicemente il seguente comando nel terminale Linux per testare il file di configurazione predefinito, se il risultato è buono vai al passaggio successivo.
sudo nginx -t
  1. Usa uno dei seguenti comandi per riavviare il server web Nginx. Il comando dipende dal nome e dalla versione della distribuzione Linux.
sudo systemctl riavvia nginx
sudo service nginx reload
sudo /etc/init.d/nginx ricarica
I migliori giochi da riga di comando per Linux
La riga di comando non è solo il tuo più grande alleato quando usi Linux, ma può anche essere una fonte di intrattenimento perché puoi usarla per gioc...
Le migliori app di mappatura del gamepad per Linux
Se ti piace giocare su Linux con un gamepad invece di un tipico sistema di input di tastiera e mouse, ci sono alcune app utili per te. Molti giochi pe...
Strumenti utili per i giocatori Linux
Se ti piace giocare su Linux, è probabile che tu abbia utilizzato app e utilità come Wine, Lutris e OBS Studio per migliorare l'esperienza di gioco. O...