Apache e Nginx sono server web gratuiti, open-source e i più utilizzati al mondo. Apache è il server numero uno, mentre Nginx è al secondo posto. Apache è noto per la sua potenza e la compatibilità back-end mentre Nginx è noto per la sua velocità. Nginx offre un ricco set di funzionalità tra cui bilanciamento del carico, sicurezza e accelerazione. L'utilizzo di Nginx come proxy inverso consente di utilizzare queste funzionalità per qualsiasi applicazione Web.
La configurazione di un proxy inverso ti aiuta a nascondere l'identità dei tuoi server back-end e a proteggere i tuoi server dagli attacchi. Un proxy inverso esegue anche il bilanciamento del carico e distribuisce la richiesta del client tra i server back-end. Questo può essere molto utile quando alcuni server vengono sovraccaricati a causa di un improvviso picco nelle richieste dei client.
L'uso di Nginx come proxy inverso per Apache consentirà a entrambi i server di lavorare insieme e ti consentirà di sfruttare i vantaggi di entrambi i server. Puoi monitorare facilmente il traffico in entrata e in uscita tramite il proxy inverso.
In questo tutorial impareremo come installare e configurare Nginx come proxy inverso per Apache su Ubuntu 18.04 VPS. Configureremo Apache per l'esecuzione sulla porta 8080, configureremo Nginx per l'esecuzione sulla porta 80 e inoltreremo le richieste dei client in arrivo sulla porta 80 al server web Apache.
Prerequisiti
- Un nuovo server VPS Ubuntu 18.04 su Atlantic.net Cloud.
- Un nome di dominio valido è puntato al tuo indirizzo IP VPS. In questo tutorial utilizzeremo example.com
Fase 1:crea un server cloud Atlantic.Net
Innanzitutto, accedi al tuo server cloud Atlantic.Net. Crea un nuovo server, scegliendo Ubuntu 18.04 come sistema operativo, con almeno 2GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.
Dopo aver effettuato l'accesso al tuo server Ubuntu 18.04, esegui il comando seguente per aggiornare il tuo sistema di base con gli ultimi pacchetti disponibili.
apt-get update -y
Fase 2 – Installa e configura Apache
Innanzitutto, dovrai installare il server web Apache sul tuo VPS. Puoi installare Apache eseguendo il seguente comando:
apt-get install apache2 -y
Una volta installato, avvia il servizio web Apache e abilitalo all'avvio dopo il riavvio del sistema con il seguente comando:
systemctl start apache2 systemctl enable apache2
nano /etc/apache2/ports.conf
Trova la seguente riga:
Listen 80
Sostituiscilo con il seguente:
Listen 127.0.0.1:8080
Salva e chiudi il file. Quindi, apri il file dell'host virtuale predefinito di Apache con il seguente comando:
nano /etc/apache2/sites-available/000-default.conf
Trova la seguente riga:
<VirtualHost *:80>
Sostituiscilo con il seguente:
<VirtualHost 127.0.0.1:8080>
Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio Web Apache per applicare tutte le modifiche alla configurazione:
systemctl restart apache2
Ora puoi verificare che il server web Apache sia in ascolto sulla porta 8080 con il seguente comando:
netstat -ant | grep 8080
Dovresti vedere il seguente output:
tcp 0 127.0.0.1:8080 0.0.0.0:* LISTEN
Fase 3 – Installa e configura Nginx
Successivamente, dovrai installare Nginx e configurarlo come proxy inverso per inoltrare le richieste in arrivo sulla porta 80 al server web Apache che è in ascolto sulla porta 8080.
Puoi installare il server web Nginx eseguendo il comando seguente:
apt-get install nginx -y
Una volta installato, avvia il servizio Nginx e abilitalo all'avvio dopo il riavvio del sistema:
systemctl start nginx systemctl enable nginx
Quindi, imposta il proxy inverso Nginx creando un nuovo file host virtuale:
nano /etc/nginx/sites-available/example.com
Aggiungi le seguenti righe:
server { listen 80; root /var/www/html/; index index.html index.htm; server_name example; location \ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080; } }
Salva e chiudi il file. Quindi, abilita il file di configurazione dell'host virtuale con il seguente comando:
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Quindi, verifica Nginx per eventuali errori di sintassi con il seguente comando:
nginx -t
Se tutto è corretto, dovresti ottenere il seguente output:
nginx:la sintassi del file di configurazione /etc/nginx/nginx.conf è ok
nginx:il test del file di configurazione /etc/nginx/nginx.conf è riuscito
Infine, riavvia il servizio Nginx per applicare queste modifiche alla configurazione:
systemctl riavvia nginx
Fase 4:prova il proxy inverso Nginx
Nginx e Apache sono installati e configurati correttamente. Ora puoi testare la funzionalità del proxy inverso Nginx.
Per farlo, apri il tuo browser web e digita l'URL http://example.com. Verrai reindirizzato alla pagina predefinita di Apache come mostrato nella schermata seguente:
Conclusione
Congratulazioni! Hai installato e configurato correttamente Nginx come proxy inverso per il server web Apache. Puoi anche configurare Nginx come proxy inverso per altre applicazioni come Tomcat, Wildfly, Node.Js e Glassfish.
Se sei pronto per iniziare con un server privato virtuale per ospitare i tuoi siti web, visita la pagina Hosting VPS di Atlantic.Net per trovare il pacchetto di hosting che fa per te.