Apache è il server web più diffuso, in grado di operare su un gran numero di sistemi operativi, inclusi UNIX/Linux, Microsoft Windows e OpenVMS.
NGINX è un web server ad alte prestazioni utilizzato in particolare per file statici e come proxy inverso, ma grazie alla sua versatilità può essere utilizzato in qualsiasi tipo di situazione.
In questo tutorial scopriremo come sfruttare i punti di forza di entrambi i server web facendoli cooperare in perfetta armonia. NGINX verrà utilizzato come server Web frontend che gestirà le richieste dei client e le invierà ad Apache, che sarà il nostro server Web di backend e restituirà la risposta richiesta. Questa procedura consente di ottenere diversi vantaggi dalle prestazioni alla sicurezza.
Per prima cosa, connettiti al tuo server tramite una connessione SSH. Se non l'hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in modo sicuro con SSH. Nel caso di un server locale vai al passaggio successivo e apri il terminale del tuo server.
Installazione e configurazione di Apache
Aggiorna i repository della distribuzione Ubuntu Linux, per assicurarti di scaricare l'ultima versione di Apache:
$ sudo apt-get update
Quindi, avvia l'installazione:
$ sudo apt install apache2
A questo punto l'installazione di Apache è completata ed è possibile continuare con la sua configurazione.
Cambia la porta utilizzata di default da Apache in 8080. Per fare ciò, apri il file di configurazione come mostrato:
$ sudo nano /etc/apache2/ports.conf
Trova la riga Listen 80 e cambiala in Listen 8080, quindi salva e chiudi il file.
Riavvia il servizio Apache:
$ sudo systemctl restart apache2
Per verificare la modifica della porta Apache visitare http://
Installazione e configurazione di NGINX
Continua avviando l'installazione di NGINX:
$ sudo apt-get install nginx
Una volta completata l'installazione, apri il file di configurazione di NGINX come mostrato:
$ sudo nano /etc/nginx/nginx.conf
Quindi, modifica o aggiungi il blocco del server come mostrato qui per usare NGINX come server proxy Apache:
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm;
server_name SERVER_IP;
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 NGINX:
$ sudo systemctl restart nginx
Configurazione firewall
In caso di un firewall sul tuo sistema, impostalo per abilitare il traffico HTTP e il traffico HTTPS sul tuo computer.
Quando utilizzi il firewall UFW, avrai profili preinstallati per NGINX. Vediamo quindi come abilitarli.
Per verificare i profili disponibili installati nel firewall UFW, eseguire questo comando:
$ sudo ufw app list
Un elenco simile a questo verrà mostrato sullo schermo:
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), utilizzare il profilo "Nginx Full".
È possibile controllare le informazioni del tuo profilo in questo modo:
$ sudo ufw app info "Nginx Full"
La descrizione del profilo apparirà sullo 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 sarà possibile abilitarlo:
$ sudo ufw allow in "Nginx Full"
Infine, procedi con il test dei due server web visitando l'indirizzo http://
Se la procedura è stata eseguita correttamente, il tuo sito web verrà mostrato con la schermata predefinita di Apache. Ciò significa che il proxy inverso funziona ed è stato configurato correttamente.