Tutorial > Come installare NGINX come reverse proxy di Apache su Ubuntu 18.04

Come installare NGINX come reverse proxy di Apache su Ubuntu 18.04

Pubblicato il: 23 ottobre 2019

Apache NGINX Reverse Proxy Ubuntu Web Server

Apache è il web server più diffuso, in grado di operare su un grande numero di sistemi operativi, tra cui UNIX/Linux, Microsoft Windows e OpenVMS.

NGINX è un server web dalle alte prestazioni utilizzato in particolar modo per i file statici e come reverse proxy, ma grazie alla sua versatilità può essere adoperato in qualsiasi tipo di situazione.

In questo tutorial scopriremo come sfruttare i punti di forza di entrambi i web server facendoli cooperare in perfetta armonia. NGINX sarà utilizzato come web server frontend che si occuperà di gestire le richieste dei client e di inviarle ad Apache, che sarà il nostro web server di backend e restituirà la risposta richiesta. Questa procedura permette di ottenere svariati benefici che vanno delle prestazioni alla sicurezza.

Per prima cosa dovrai connetterti al tuo server tramite una connessione SSH. Se non l’hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in sicurezza con il protocollo SSH. In caso di server locale puoi passare al punto successivo e aprire il terminale del tuo server.

Installazione e Configurazione di Apache

Aggiorna i repository della distribuzione Linux Ubuntu, per essere sicuro di scaricare la versione più aggiornata di Apache:

$ sudo apt-get update

Successivamente avvia l'installazione:

$ sudo apt install apache2

A questo punto l'installazione di Apache è completata e puoi proseguire con la sua configurazione.

Cambia la porta utilizzata di default da Apache in 8080. Per farlo apri il file di configurazione come indicato:

$ sudo nano /etc/apache2/ports.conf

Cerca la riga Listen 80 e cambiala in Listen 8080, quindi salva e chiudi il file.

Riavvia il servizio di Apache:

$ sudo systemctl restart apache2

Per verificare il cambio di porta di Apache visita l'indirizzo http://<IP.DEL.SERVER>:8080/ o nel caso di server locale http://localhost:8080/. Se la procedura é stata effettuata correttamente verrà visualizzato il tuo sito web.

Installazione e Configurazione di NGINX

Prosegui avviando l'installazione di NGINX:

$ sudo apt-get install nginx

Una volta completata l'installazione, apri il file di configurazione di NGINX come indicato:

$ sudo nano /etc/nginx/nginx.conf

Quindi modifica o aggiungi il blocco server nel seguente modo per utilizzare NGINX come server proxy di Apache:

server {

listen 80;
                root /var/www/html;

index index.php index.html index.htm;

server_name IP_DEL_SERVER;
                location / {

proxy_pass http://localhost:8090;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

}

}

Salva e chiudi il file.

Quindi riavvia il servizio di NGINX:

$ sudo systemctl restart nginx

Configurazione del Firewall

Se sul tuo sistema è presente un firewall allora dovrai impostarlo per abilitare il traffico HTTP e il traffico HTTPS verso la tua macchina.

Qualora utilizzassi il firewall UFW, avrai a disposizione dei profili preinstallati per NGINX. Vediamo quindi come abilitarli.

Per verificare i profili disponibili installati nel firewall UFW esegui questo comando:

$ sudo ufw app list

Verrà mostrata a schermo una lista simile a questa:

Available applications:

  Dovecot IMAP

  Dovecot POP3

  Dovecot Secure IMAP

  Dovecot Secure POP3

  Nginx Full

  Nginx HTTP

  Nginx HTTPS

  OpenSSH

  Postfix

  Postfix SMTPS

  Postfix Submission

Per consentire il traffico HTTP (Porta 80) e HTTPS (Porta 443), dovrai utilizzare il profilo "Nginx Full". 

Puoi verificare le informazioni del profilo in questo modo:

$ sudo ufw app info "Nginx Full"

Apparirà la descrizione del profilo a schermo:

Profile: Nginx Full

Title: Web Server (Nginx, HTTP + HTTPS)

Description: Small, but very powerful and efficient web server
                Ports:

  80,443/tcp

Dopo aver verificato il profilo sarai pronto ad abilitarlo:

$ sudo ufw allow in "Nginx Full"

Infine procedi con il testare i due web server visitando l'indirizzo http://<IP.DEL.SERVER> o nel caso di server locale http://localhost.

Se la procedura é stata eseguita senza errori verrà mostrato il tuo sito web con la schermata di default di Apache. Questo vuol dire che il reverse proxy funziona ed è stato configurato correttamente.

image1.png