GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare e utilizzare NGINX come proxy inverso

Cos'è un proxy inverso?

Un server proxy standard funziona per conto dei client, spesso fornendo privacy o filtrando i contenuti. Un proxy inverso funziona per conto di un server, intercettando il traffico e instradandolo a un server separato.

Esistono diversi motivi per cui potresti voler installare un proxy inverso. Uno dei motivi principali è la privacy.

Se si dispone di più server, un proxy inverso può aiutare a bilanciare i carichi tra i server e migliorare le prestazioni. Poiché un proxy inverso fornisce un unico punto di contatto per i clienti, può centralizzare la registrazione e i rapporti su più server.

Nginx può migliorare le prestazioni servendo rapidamente contenuto statico e trasmettendo richieste di contenuto dinamico ai server Apache.

Questa guida ti aiuterà a installare e configurare un proxy inverso Nginx sul tuo sistema.

Prerequisiti

  • Un server Linux con Apache, PHP e un firewall
  • Accesso a un utente root con sudo accedere
  • Riga di comando o terminale Linux (CtrlAltT per Ubuntu, AltF2 per CentOS)
  • Gestione pacchetti (come APT)

Configurazione di un proxy inverso Nginx

Passaggio 1:installa Nginx dai repository predefiniti

Apri una finestra di terminale e inserisci quanto segue:

sudo apt-get update

Consenti al gestore pacchetti di completare l'aggiornamento degli elenchi di software, quindi inserisci quanto segue:

sudo apt-get install nginx

Consenti il ​​completamento del processo.

Fase 2 (opzionale):installa Nginx dal repository ufficiale

Aggiungi token di sicurezza

In una finestra di terminale, inserisci quanto segue:

sudo wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

Questo scarica la chiave di firma per Nginx, che verifica che stai scaricando un software autentico.

Apri sources.list File per la modifica

Nel terminale, inserisci quanto segue:

sudo vi /etc/apt/sources.list

Aggiungi sorgenti Nginx all'elenco dei repository

Inserisci le seguenti righe in /etc/apt/sources.list file che hai appena aperto:

deb https://nginx.org/packages/mainline/debian/ <CODENAME> nginx

deb-src https://nginx.org/packages/mainline/debian/ <CODENAME> nginx

Sostituisci <CODENAME> con il nome in codice per la tua distribuzione di Debian.

Salva il file ed esci .

Installa l'ultima versione di Nginx

Per installare l'ultima versione di Nginx, usa i comandi:

sudo apt-get remove nginx-common
sudo apt-get update
sudo apt-get install nginx

Passaggio 3:avvia Nginx e configura per l'avvio al riavvio

Per avviare Nginx:

sudo systemctl start nginx

Per abilitare Nginx:

sudo systemctl enable nginx

Per verificare che Nginx sia in esecuzione:

sudo systemctl status nginx

L'output dovrebbe mostrare che il servizio è attivo (in esecuzione) , come nell'immagine qui sotto:

Fase 4:scollega il file di configurazione predefinito

Nel terminale, inserisci quanto segue:

sudo unlink /etc/nginx/sites-enabled/default

Fase 5:crea un nuovo file di configurazione

Per creare un nuovo file di configurazione, inserisci:

cd /etc/nginx/sites-available/
sudo vi custom_server.conf

Sostituisci custom_server con un nome che è significativo per te. Nel nuovo file, inserisci:

server {

listen 80;

location / {

proxy_pass http://my_server;

}

}

Questo è un esempio di proxy inverso Nginx molto semplice. Nginx è impostato per ascoltare tutto il traffico sulla porta 80 per tutto il traffico.

Il proxy_pass il comando indirizza tutto il traffico sulla porta 80 a http://my_server . Basta cambiare http://my_server nella posizione di tua scelta e Nginx intercetterà le richieste dei clienti e le indirizzerà alla posizione da te specificata. Al termine, salva il file ed esci.

Fase 6:collegamento e attivazione del file di configurazione

Per attivare il nuovo file Nginx, inserisci:

ln -s /etc/nginx/sites-available/custom_server.conf 
/etc/nginx/sites-enabled/custom_server.conf

Come al solito, sostituisci custom_server con il nome del file di configurazione creato al punto 5.

Passaggio 7:verifica e riavvia Nginx

Per testare Nginx:

sudo service nginx configtest

Per riavviare Nginx:

sudo service nginx restart

Opzioni di configurazione Nginx opzionali

Buffer proxy

Per impostazione predefinita, Nginx esegue il buffering del traffico per i server per i quali esegue il proxy. I buffer migliorano le prestazioni del server poiché una risposta del server non viene inviata fino a quando il client non completa l'invio di una risposta completa.

Per disattivare il buffer, apri il file di configurazione dal passaggio 5. Nella posizione/sezione , aggiungi quanto segue:

proxy_buffering off;

Richiedi intestazioni

Le intestazioni forniscono al server informazioni sulle richieste effettuate o sul client.

Nginx ridefinisce due dei campi di intestazione:host è configurato per $proxy_host e connection è configurato per close . Se utilizzi queste intestazioni, assicurati di modificare il comportamento nel file di configurazione.

Se le stringhe di intestazione sono vuote, Nginx elimina semplicemente quei campi.

Per cambiare il modo in cui Nginx gestisce le eriche, usa i seguenti comandi nel tuo file di configurazione:

location / {

proxy_set_header Host $host;

}

Questo esempio dice a Nginx di impostare host al $host variabile.

Per impedire che un campo di intestazione venga passato al server proxy, utilizzare una stringa vuota come segue:

location / {

proxy_set_header header-variable "";

}

Bilanciamento del carico

È possibile utilizzare il file di configurazione per instradare il traffico a più server. Per utilizzare questa configurazione, il tuo file di configurazione sarà simile a questo esempio:

http   {

server   {

proxy_pass http://my_server

}

}

In altre parole, la configurazione HTTP esce dalla configurazione del server dal passaggio 5.

Per creare un nome per un gruppo di server, utilizza il upstream comando:

http   {

upstream server_group   {

server my.server1.com weight=3;

server my.server2.com;

}

server  {

location / {

proxy_pass http://server_group;

}

}

}

Questa designazione richiede due server:my.server1.com e my.server2.com – e li raggruppa insieme. Nginx invia un proxy a quel gruppo di server con il nome http://server_group . Puoi rinominarli come preferisci.

Questo esempio utilizza il weight comando per instradare tre richieste a my.server1.com , quindi 1 richiesta a my.server2.com . Questa è un'opzione per bilanciare manualmente il carico del client tra i server. Un altro metodo è semplicemente omettere qualsiasi designazione, in cui Nginx eseguirà il round robin delle richieste in modo uniforme tra i server elencati.


Ubuntu
  1. Come configurare il proxy inverso Nginx per Kibana

  2. Come configurare un proxy inverso Nginx

  3. Come configurare Nginx come proxy inverso su Ubuntu 20.04

  4. Configura Nginx come proxy inverso su Ubuntu 20.04 - Guida passo passo?

  5. Come posso configurare curl per utilizzare in modo permanente un proxy?

Come configurare Nginx come proxy inverso per Apache su Debian 11

Come impostare il proxy inverso Nginx

Come configurare un server Apt-cacher?

Come configurare il proxy inverso Nginx su Plesk?

Come utilizzare il proxy inverso Nginx (server cPanel/WHM)

Come configurare Tomcat con Nginx come proxy inverso su Ubuntu 18.04