Un proxy inverso si trova di fronte a un server web e riceve tutte le richieste prima che raggiungano il server di origine. Funziona in modo simile a un forward proxy, ma in questo caso è il server web che usa il proxy piuttosto che l’utente o il client. I reverse proxy sono tipicamente usati per migliorare le prestazioni, la sicurezza e l’affidabilità del server web.

Ad esempio, è possibile avere un sito non WordPress ospitato sul dominio example.com sul Server A e avere il blog in esecuzione su WordPress all’URL example.com/blog ospitato sul Server B. È possibile ottenere questo risultato aggiungendo un proxy inverso per il server che ospita il vostro sito principale. Potete configurare il proxy inverso per reindirizzare le richieste al blog su un server diverso (ad esempio un host WordPress gestito come Kinsta).

In questo articolo, imparerete le basi dei server reverse proxy, come funzionano, quali sono i loro principali vantaggi e come potete usarli per velocizzare e rendere sicuro il vostro sito WordPress.

Entusiasti? Cominciamo!

Che Cos’È un Reverse Proxy?

Per capire cos’è un server reverse proxy, è necessario prima conoscerne il ruolo e familiarizzare con tutti i termini ad esso correlati.

Quando navigate normalmente sul web inserendo un nome di dominio o facendo clic su un link, il vostro browser/dispositivo si collega direttamente al server del sito web e inizia a scaricare le sue risorse.

Come funziona di solito la navigazione in internet

Come funziona di solito la navigazione in internet

Se volete rendere anonimo il vostro indirizzo IP dai siti web che visitate, potete prima inviare tutte le vostre richieste a un server proxy. Questo inoltrerà le vostre richieste al DNS resolver e poi scaricherà le risorse del sito web dal suo server di origine.

In seguito, trasmetterà queste risorse al vostro dispositivo. Questo si chiama forward proxy.

Come funziona un server forward proxy

Come funziona un server forward proxy

In questo modo siete completamente nascosti al sito web in quanto questo riterrà che la vostra richiesta provenga dal forward proxy.

Oltre a migliorare la privacy degli utenti, un proxy forward viene utilizzato principalmente per aggirare le restrizioni geografiche sui contenuti. Ad esempio, se volete guardare un video bloccato nella vostra regione, potete usare un forward proxy con un indirizzo IP sul quale il video è disponibile per la visualizzazione.

Un proxy forward funziona quasi allo stesso modo di una Virtual Private Network (VPN), ma sono tecnologie distinte con casi d’uso unici (a volte possono però sovrapporsi).

Server Reverse Proxy vs Server Forward Proxy

Un server proxy inverso funge da fronte per il server di origine, mantiene l’anonimato e migliora la sicurezza, proprio come un utente/cliente può utilizzare un forward proxy per ottenere lo stesso risultato. Esso assicura che nessun utente o cliente comunichi direttamente con il server di origine.

Come funziona un server reverse proxy

Come funziona un server reverse proxy

La differenza tra un forward proxy e un reverse proxy è minima, ma i due funzionano in modo diverso.

Entrambi possono lavorare insieme perché non c’è sovrapposizione tra il loro funzionamento. In genere, gli utenti/clienti utilizzano un forward proxy, mentre i server di origine utilizzano un reverse proxy.

Forward proxy vs reverse proxy

Forward proxy vs reverse proxy

Poiché un amministratore di server può controllare il funzionamento del reverse proxy, è possibile utilizzarlo per abilitare molte funzioni utili.

Ne elencheremo tutti i vantaggi più avanti in questo post.

Perché Usare un Reverse Proxy?

Molte aziende, soprattutto le grandi imprese, hanno siti web fatti su misura per le loro esigenze specifiche e non girano su WordPress. Alcuni esempi sono i siti web di banche e assicurazioni.

In altri casi, un’azienda può ospitare il proprio sito su un servizio esterno che non consente di installare alcun software esterno (ad esempio WordPress). Di solito, si tratta di rivenditori di piccole e medie dimensioni che usano una piattaforma di ecommerce come Shopify.

Dal momento che WordPress ha solide funzionalità CMS, molte aziende, comprese le grandi imprese con siti web su misura, potrebbero preferire di ospitare i loro blog su WordPress.

Un modo per ovviare a questo problema è installare WordPress nel sottodominio del sito principale e strutturare i menu di navigazione in modo che gli utenti possano passare facilmente dal sito principale al blog.

Poiché i sottodomini si comportano come un dominio unico, possono influenzare la SEO del vostro sito. Anche se Google tratta sia i sottodomini che le sottodirectory allo stesso modo, ci vuole più impegno per ottimizzare un sito web per il posizionamento nei motori di ricerca, sia se è ospitato su un sottodominio sia se è ospitato in una sottodirectory.

Due approcci per ospitare i blog su un sito web

Due approcci per ospitare i blog su un sito web

Google ha ribadito che tratta sia i sottodomini che le sottodirectory allo stesso modo, ma alcuni esperti di SEO non sono d’accordo. E anche se non influisce sulla SEO del sito, un sito ospitato in una sottodirectory è semplicemente più facile da mantenere.

Ecco perché è possibile utilizzare un proxy inverso per reindirizzare le richieste al blog del sito ospitato su un server separato. Ad esempio, una banca può ospitare il proprio sito web principale sui propri server in modo sicuro, ma può anche ospitare il proprio blog alimentato da WordPress separatamente su un host WordPress gestito, come fa Kinsta.

Un esempio di caso d'uso di reverse proxy

Un esempio di caso d’uso di reverse proxy

L’unificazione di due siti diversi sotto un unico nome di dominio è uno dei vantaggi principali dell’utilizzo di un reverse proxy. Aiuta i brand a mantenere i loro siti organizzati, professionali e credibili.

Scopri come un proxy inverso può migliorare le ⚡️ prestazioni 🔒 la sicurezza & 🤝 l’affidabilità...Tutto in questa guida ⬇️Click to Tweet

Vantaggi dell’Utilizzo di un Reverse Proxy

Oltre al caso d’uso di cui sopra, i reverse proxy garantiscono anche molti altri vantaggi. Nella sezione seguente illustriamo alcuni dei loro principali vantaggi.

Load Balancing

Un singolo server di origine non può gestire tutto il traffico in entrata di un sito web con milioni di visitatori unici giornalieri. In questi casi, è possibile distribuire il traffico in modo intelligente tra un pool di molti server. Di solito, tutti i server ospiteranno lo stesso contenuto per eliminare un singolo punto di rottura, rendendo il sito web più affidabile.

Un proxy inverso è un ottimo modo per impostarlo, in quanto può ricevere il traffico in entrata prima che raggiunga il server di origine. Se il server di origine è sovraccarico o si guasta completamente, può distribuire il traffico ad altri server senza compromettere la funzionalità del sito.

I reverse proxy possono anche indirizzare le richieste in arrivo a più server, dove ogni server svolge la funzione specifica per la quale è ottimizzato. Il proxy inverso può quindi raccogliere le risposte da tutti i server e consegnarle al client.

Poiché la maggior parte dei popolari reverse proxy si usano principalmente per il load balancing, sono anche chiamati Load Balancer.

Global Server Load Balancing – GSLB

Il GSLB è un metodo avanzato di load balancing per distribuire il traffico del sito web tra molti server posizionati strategicamente in tutto il mondo. Viene tipicamente effettuato tramite la tecnica di routing anycast, dove il proxy inverso sceglie il nodo del server in base al tempo di percorrenza più veloce tra il client e il server.

Il GSLB non solo aumenta notevolmente l’affidabilità e la sicurezza del sito, ma riduce anche i tempi di latenza e di carico, migliorando così l’esperienza dell’utente. È possibile utilizzare GSLB con altre tecniche di ottimizzazione della rete come Spoon Feeding per liberare ancora di più le risorse computazionali dei server di origine.

Anche se è possibile impostare il Global Server Load Balancing manualmente sul proprio server, di solito è curato da CDN dedicati come Cloudflare e KeyCDN (che alimenta anche Kinsta CDN). Kinsta serve tutti i siti web ospitati con esso attraverso un Load Balancer alimentato da Google Cloud Platform.

Maggiore Sicurezza

I reverse proxy possono mascherare l’indirizzo IP e altre caratteristiche dei server di origine. In questo modo, il server di origine del vostro sito web può mantenere meglio l’anonimato, aumentando notevolmente la sicurezza.

Poiché il proxy inverso riceverà tutto il traffico prima di raggiungere il server principale, eventuali aggressori o hacker troveranno più difficile colpire il vostro sito web con minacce alla sicurezza come gli attacchi DDoS.

È possibile utilizzare un firewall rigoroso per mettere in maggiore sicurezza il proxy inverso contro i comuni attacchi informatici. Senza un proxy inverso, è difficile rimuovere il malware o avviare il takedown.

Un proxy inverso come HAProxy può aggiungere l’autenticazione di accesso HTTP di base a un server web che non l’ha abilitato. È anche possibile utilizzare un proxy inverso per aggiungere l’autenticazione centralizzata per vari tipi di richieste.

Caching Potente

È possibile utilizzare un proxy inverso per l’accelerazione del web mediante il caching di contenuti sia statici che dinamici. Questo può ridurre il carico sul server di origine, con il risultato di un sito web più veloce.

Ad esempio, se il vostro server di origine si trova negli USA e un utente europeo visita il vostro sito web, allora potete servire una versione cache del vostro sito da un server reverse proxy in Europa. Poiché il proxy inverso è più vicino all’utente rispetto al server d’origine, il sito web richiederà meno tempo per essere caricato, rendendo le sue prestazioni eccellenti.

Varnish e Nginx FastCGI sono esempi prominenti di proxy inverso che vengono usati per il caching di contenuti web. Se il vostro sito è ospitato su Kinsta, non dovete preoccuparvi del caching, perché Kinsta si occupa di tutto il lavoro di caching per voi.

Compressione Superiore

Le risposte del server consumano molta larghezza di banda. Comprimere le risposte del server (ad esempio con gzip) prima di inviarle al client può ridurre la quantità di larghezza di banda necessaria, velocizzando le risposte del server in rete.

Un proxy inverso è l’ideale per comprimere le risposte dei server in quanto si trova tra i server di origine e il client.

Crittografia SSL Ottimizzata

La crittografia e la decrittografia delle richieste SSL/TLS per ogni client può essere molto onerosa per il server di origine. Un proxy inverso può assumere questo compito per liberare le risorse del server di origine per altri importanti compiti, come servire contenuti.

Un altro vantaggio dell’offloading della crittografia e la decrittografia SSL/TSL è quello di ridurre la latenza per i client che sono geograficamente distanti dal server di origine.

È inoltre possibile optare per un proxy inverso con hardware di accelerazione SSL/TLS specializzato per ottimizzare ulteriormente questo compito. Tale reverse proxy è chiamato proxy di terminazione SSL/TLS. Alcuni server come Varnish non supportano i protocolli SSL/TSL, quindi un proxy inverso di terminazione SSL/TSL può aiutare a proteggere il traffico che li attraversa.

Migliori Test A/B

La maggior parte degli strumenti di test A/B richiede l’uso di librerie JavaScript esterne per caricare le loro funzioni. Tuttavia, il caricamento di script di terze parti può rallentare i tempi di caricamento delle pagine e creare un’esperienza frammentaria per gli utenti.

Invece, è possibile utilizzare un proxy inverso per creare due flussi separati a livello del server stesso. Ad esempio, è possibile utilizzare i metodi split_clients di Nginx o i metodi di sticky route per controllare il reindirizzamento del traffico.

Potete fare riferimento ai tutorial su Nginx e freeCodeCamp per saperne di più sull’esecuzione di test A/B con un reverse proxy.

Monitoraggio e Registrazione del Traffico

Un reverse proxy cattura tutte le richieste che lo attraversano. Quindi, è possibile utilizzarli come hub centrale per monitorare e registrare il traffico. Anche se si usano più server web per ospitare tutti i componenti del vostro sito web, l’utilizzo di un proxy inverso renderà più facile monitorare tutti i dati in entrata e in uscita dal vostro sito.

Secondo la W3Techs, quasi l’83% dei siti web non usa nessun servizio di reverse proxy.

Statistiche dei reverse proxy utilizzati dai siti web

Statistiche dei reverse proxy utilizzati dai siti web (Fonte: W3Techs.com)

Per quanto riguarda il 17% dei siti web che utilizzano un proxy inverso (elencati sopra), noterete che la maggior parte di essi usa un CDN. Questo perché la maggior parte dei reverse proxy nascondono la loro esistenza per default come precauzione di sicurezza. Pertanto, non è possibile affidarsi a servizi di monitoraggio di siti web come W3Techs per trovare i reverse proxy più popolari.

Dalla nostra ricerca e dalla nostra esperienza, i più popolari reverse proxy in uso oggi sono:

Nginx

Nginx è un server web open source che può anche servire come reverse proxy. Oltre a essere utilizzato per ospitare siti web, è anche una delle soluzioni di reverse proxy e load balancing più utilizzate. Secondo Netcraft, nel dicembre 2019 oltre 479 milioni di web server utilizzavano Nginx, il che lo rende leader nella quota di mercato dei web server.

Quota di mercato dei server web di tutti i siti

Quota di mercato dei server web di tutti i siti (Fonte: Netcraft)

Nginx fornisce tutti i vantaggi dei reverse proxy discussi sopra, più altri. Migliora le prestazioni del web, la sicurezza, l’affidabilità e la scalabilità. È possibile configurare Nginx utilizzando il suo file di configurazione, che è anche ricaricabile a caldo.

Ma è anche possibile utilizzare Nginx Plus, un’offerta commerciale, per accedere alle opzioni di configurazione basate su API e ad altre funzionalità adatte ai siti web delle grandi imprese.

Kinsta alimenta tutti i suoi siti web con Nginx. È stata elencata fra i migliori web hosting ottenendo la classificazione Top Tier di Review Signal in ogni categoria in cui ha gareggiato. Alcune altre grandi aziende che usano Nginx sono MaxCDN, Cloudflare e Netflix.

L’impostazione di Nginx come reverse proxy di base è semplice. Nginx fornisce anche varie direttive per personalizzare il reverse proxy del vostro server secondo le vostre esigenze. Discuteremo come farlo in una sezione successiva. Se siete clienti Kinsta, nella stessa sezione imparerete anche come usare un proxy inverso per i siti web ospitati con Kinsta.

Varnish

Varnish è un proxy inverso HTTP open source con un motore di cache integrato. È progettato principalmente per siti web ad alto traffico che servono contenuti dinamici. È anche possibile utilizzare Varnish come load balancer, un firewall per applicazioni web (WAF) e un server di autenticazione e autorizzazione edge.

Funziona su tutte le versioni moderne di Linux e FreeBSD, essendo usato principalmente come copertura per i web server Nginx o Apache. Il potente e altamente flessibile Varnish Varnish Configuration Language (VCL) permette di definire varie caratteristiche come la gestione delle richieste HTTP, la cache e la connessione a uno o più server web.

Per questo motivo, molti CDN utilizzano Varnish come base principale per la consegna rapida dei contenuti.

Varnish supporta anche Edge Side Includes (ESI), un linguaggio che aiuta a riutilizzare sezioni di una pagina web in altre pagine web. Se il vostro sito web usa molti contenuti ripetuti in pagine diverse, ESI può aiutarvi a velocizzare i tempi di caricamento delle pagine del vostro sito tramite il caching delle sezioni utilizzate di frequente.

È possibile estendere Varnish con i suoi vari moduli (VMOD). Date un’occhiata al tutorial ufficiale di Varnish per imparare a impostare Varnish come reverse proxy per WordPress.

Apache Traffic Server

Apache Traffic Server è un server proxy di caching open source. È popolare per le sue caratteristiche veloci e scalabili. Era un prodotto commerciale sviluppato da Yahoo! molto tempo fa, ma lo hanno reso open source e lo hanno donato alla Apache Foundation per la manutenzione.

Diverse importanti reti di contenuti e CDN come Comcast, Akamai, LinkedIn, Yahoo e Apple usano Apache Traffic Server per alimentare la loro tecnologia.

Potete anche usare Apache HTTP Server (Apache httpd), un server daemon HTTP, per impostare un proxy inverso sul vostro server web. Oltre ad agire come server web di base, aiuta anche a servire contenuti statici e dinamici agli utenti. Imparerete come impostare Apache come reverse proxy più avanti in questo articolo.

HAProxy

HAProxy è un proxy inverso open source e load balancer. È progettato per integrarsi con la maggior parte delle architetture di server web esistenti, comprese le distribuzioni Linux e le piattaforme cloud. Simile a Nginx, HAProxy usa un modello di I/O event-driven e supporta la suddivisione delle richieste tra più processi di lavoro.

Per le richieste HTTP, HAProxy si comporta molto bene anche con carichi pesanti. Alcuni dei siti web a più alto traffico su internet come Airbnb, Reddit, Instagram, Stack Overflow, Tumblr, GitHub e Imgur usano HAProxy per servire i loro siti web in modo efficiente.

Discutere su come implementare HAProxy va oltre lo scopo di questo articolo, ma si può fare riferimento alla loro documentazione per capire come funziona.

Nota: Traefik ed Envoy sono altre due alternative open source ad HAProxy. Sono entrambi reverse proxy ad alte prestazioni e load balancer con molte caratteristiche avanzate.

Altri popolari reverse proxy sono AWS Elastic Load Balancer, GLBC, DigitalOcean Load Balancer e Google Cloud Load Balancer. Per un elenco esaustivo dei principali reverse proxy e load balancer in uso oggi, potete consultare Stackshare.io.

Reverse Proxy: Casi d’Uso per i Siti WordPress

Ci sono principalmente tre casi d’uso per l’impiego di un proxy inverso per i siti WordPress, compresi i siti ospitati su Kinsta.

Caricamento di un 'Sito principale' o di un 'Sito dietro Proxy.

Caricamento di un ‘Sito principale’ o di un ‘Sito dietro Proxy.

Useremo Nginx solo per questo esempio, poiché è il reverse proxy più popolare usato oggi per i siti WordPress. Ma gli stessi principi di base si applicheranno ad altri reverse proxy.

I proxy inversi sono spesso difficili da installare, configurare e supportare. Per questo motivo, Kinsta offre un abbonamento mensile di 50 dollar per ogni reverse proxy che necessita di aiuto per la configurazione. Potete contattare il team di supporto di Kinsta per ulteriori dettagli.

1. Siti Principali e Siti Proxy Ospitati sullo Stesso Server

Se sia il sito principale che il sito proxy sono ospitati sullo stesso server, il sito principale può funzionare su un’installazione WordPress, mentre un’installazione WordPress separata alimenta il sito proxy.

Poiché avrete accesso a entrambi i siti e al loro server web condiviso, potete impostare le regole del reverse proxy per il sito principale, e quindi configurare il sito proxy per il caricamento dal reverse proxy.

Se ospitate entrambi questi siti su Kinsta, potete contattare il team di supporto di Kinsta e chiedere loro di impostare il reverse proxy per voi. Ecco la procedura da seguire:

Ecco le direttive standard Nginx reverse proxy usate da Kinsta per caricare un sito di sottodirectory su un reverse proxy:

location ^~ /subfolder/ {
proxy_pass http://subfolder.domain.com;
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;
}

Nel codice di cui sopra, è necessario sostituire la /subfolder/ segnaposto con il nome effettivo della sottocartella (ad es. /blog/ o /shop/). Inoltre, il sottodominio http://subfolder.domain.com dovrebbe corrispondere all’URL usato per puntare il reverse proxy verso il sito proxy.

La direttiva location include i simboli caret e tilde (^~~) per dire a Nginx che, se trova la stringa definita, dovrebbe smettere di cercare altre corrispondenze e usare le direttive qui elencate. Per saperne di più sulle direttive del reverse proxy di Nginx, consultate la sua documentazione.
Successivamente, è necessario configurare il sito proxy per il caricamento del reverse proxy. Ecco i passi standard seguiti da Kinsta per configurare il sito proxy:

Nota: un sito proxy non può creare URL che duplicano la stessa sottodirectory sotto la quale il sito proxy viene caricato. Ad esempio, un sito proxy su example.com/blog non può creare una pagina o una directory su example.com/blog/blog.

2. Solo il Sito Proxy È Ospitato sul Vostro Server

Se avete accesso solo al sito proxy e al suo server web, allora dovete contattare l’amministratore del server del sito principale e chiedere di impostare le regole del reverse proxy per voi.

Hai bisogno di un hosting veloce, sicuro e adatto agli sviluppatori per i vostri siti? L’hosting di Kinsta è stato progettato con gli sviluppatori di WordPress in mente ed offre un sacco di strumenti e un cruscotto potente. Dai un’occhiata ai nostri piani

Per fare ciò, è necessario seguire gli stessi passi sopra descritti, tranne che in questo caso dovrete configurare le regole su due server diversi.

Per ospitare il vostro sito proxy con Kinsta, aggiungete un dominio al sito che punterà al reverse proxy. Di solito, il sottodominio si adatta a questo scopo (ad esempio blog.example.com) per caricare il sito proxy su un link di sottodirectory (ad esempio example.com/blog).

Dopo aver impostato il vostro sito proxy su Kinsta, potete contattare il team di supporto Kinsta per configurare il sito proxato in modo che carichi su un reverse proxy. A questo punto, il nostro team di supporto richiederà il vero IP del vostro server per completare il processo di configurazione e così contare correttamente le visite. Se non siete in grado di fornire un IP statico a causa di restrizioni IP dinamiche da parte di alcuni provider (ad esempio AWS CloudFront), il vostro piano sarà convertito in un piano basato sulla larghezza di banda comparabile.

Infine, l’impostazione del reverse proxy sul vostro server non rientra nell’ambito del supporto di Kinsta perché solo chi amministra il server può occuparsi di questo aspetto.

 

3. Solo il Sito Principale È Ospitato sul Vostro Server

Se avete accesso solo al sito principale e al suo server web, allora dovreste impostare il reverse proxy e configurare le sue regole per caricare il sito proxy da un host esterno. L’installazione e la configurazione del sito proxy per il caricamento del reverse proxy è responsabilità dell’amministratore del server secondario.

Avere il vostro sito principale ospitato presso Kinsta vi garantirà l’accesso al team di supporto di Kinsta. È possibile aprire un ticket di supporto con loro per aggiungere le regole standard di reverse proxy elencate in precedenza in questo articolo. Se necessario, potete anche aggiungere ulteriori personalizzazioni a tali regole.

In questo scenario, siete pienamente responsabili della configurazione del sito proxy per caricarlo correttamente sul reverse proxy.

Come Impostare Nginx Come Reverse Prroxy

Se Kinsta non ospita il vostro sito web e siete voi a gestire i vostri server, allora dovete impostare voi stessi il reverse proxy e configurarlo in modo ce punti verso il sito proxy.

A seconda del sistema operativo del vostro server web, è possibile installare Nginx in modo diverso. Per le distribuzioni Linux, potete usare vari pacchetti Nginx basati sulla versione della vostra distribuzione Linux.

Nell’esempio che segue, abbiamo installato il sito principale al nome di dominio example.com, mentre il sito WordPress proxy è installato al sottodominio blog.domain.com. Entrambi sono alimentati da Apache su un server web che gira su Ubuntu 18.04. Installeremo e configureremo Nginx come reverse proxy sul server principale.

Per iniziare, accedete al terminale del vostro server tramite SSH. Poi usate il comando apt-get per aggiornare la lista dei pacchetti della vostra distribuzione e installate Nginx sul vostro server web.

sudo apt update
sudo apt install nginx

Successivamente, dovete configurare Nginx alle richieste di proxy per i domini ospitati su Apache. Per fare ciò, create un nuovo file host virtuale. Qui, stiamo usando il nano editor per aggiungere il codice, ma voi potete usare qualsiasi editor di codice di vostra scelta.

sudo nano /etc/nginx/sites-available/example.com.conf

Quindi impostate le direttive Nginx per inoltrare le richieste ad Apache aggiungendo i seguenti blocchi server {...} e location:

server {
listen      80;
server_name example.com www.example.com;
index       index.php;
root        /var/www/example.com/public    # fallback for index.php
location / {
try_files $uri $uri/ /index.php?$query_string;
}location /blog {
proxy_pass http://blog.domain.com;proxy_http_version                 1.1;
proxy_cache_bypass                 $http_upgrade;

# Proxy headers
proxy_set_header Upgrade           $http_upgrade;
proxy_set_header Connection        "upgrade";
proxy_set_header Host              $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;
proxy_set_header X-Forwarded-Host  $host;
proxy_set_header X-Forwarded-Port  $server_port;

# Proxy timeouts
proxy_connect_timeout              60s;
proxy_send_timeout                 60s;
proxy_read_timeout                 60s;
}

Nel codice di cui sopra, sto definendo un link alla sottodirectory example.com/blog che sarà servito dal server Apache. Assicuratevi di utilizzare l’indirizzo IP pubblico (o URL) del vostro sito web nella direttiva proxy_pass. Nel nostro caso, il nostro sito web proxy è ospitato nel sottodominio blog.domain.com.

Nota: Assicuratevi che il sito web proxy sia installato e pronto per essere servito prima di apportare qualsiasi modifica.

Per saperne di più su tutte le direttive reverse proxy utilizzate date un’occhiata all’indice dettagliato delle direttive di Nginx.

Salvate il file host virtuale. Quindi attivate il nuovo host virtuale creando un link simbolico per i file chiamati example.com.conf sia nelle directory /etc/nginx/sites-available che in quelle /etc/nginx/sites-enabled.

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

Dopo di che, testate Nginx per eventuali errori di configurazione.

sudo nginx -t

Se non ci sono errori, ricaricate Nginx per far rispettare le modifiche.

sudo systemctl reload nginx

Ora avete impostato con successo Nginx per farlo funzionare come reverse proxy. Per confermarlo, potete usare la funzione phpinfo() per controllare le variabili PHP caricate quando visitate il vostro sito proxy.

Sotto le variabili SERVER_SOFTWARE e DOCUMENT_ROOT PHP, vedrete che Apache serve questo dominio sul backend. Ma le variabili PHP HTTP_X_REAL_IP e HTTP_X_FORWARDED_FOR confermano che Nginx è stato usato come reverse proxy per inoltrare le richieste.

Potete velocizzare il servizio del vostro sito WordPress su Nginx utilizzando i moduli fastcgi_cache e ngx_cache_purge. Mentre il primo modulo metterà in cache il vostro sito, il secondo modulo eliminerà automaticamente la cache in base a eventi specifici (ad esempio, la pubblicazione o la modifica di un post/pagina di WordPress).

È possibile utilizzare il plugin WordPress Nginx Cache Controller per controllare la cache del server proxy di Nginx direttamente dalla bacheca di amministrazione di WordPress. Se usate un’installazione WordPress Multisite, è possibile utilizzare il plugin Nginx Helper.

Consultate la documentazione principale di Nginx e la guida all’installazione di Nginx WordPress per una panoramica dettagliata su come lavorare con Nginx e WordPress.

Come Impostare Apache come Reverse Proxy

Prima di iniziare, assicuratevi di avere due siti web attivi e funzionanti su example.com e blog.domain.com. Il primo sito web può essere o meno un sito WordPress, ma il secondo dovrebbe essere un sito WordPress in quanto viene utilizzato principalmente per caricare il blog del dominio principale all’indirizzo example.com/blog.

Iniziate a configurare Apache aprendo il terminale del server tramite SSH e abilitando il modulo proxy di Apache.

sudo a2enmod proxy proxy_http ssl

L’esecuzione del comando di cui sopra molto probabilmente riavvierà Apache per ricaricare le direttive appena definite.

Successivamente, modificate il file host virtuale del server principale per creare un reverse proxy. Ecco il codice da aggiungere:

<VirtualHost *>
DocumentRoot /var/www/app/public
SSLProxyEngine On    ProxyRequests off
ProxyPass /blog http://blog.domain.com
ProxyPassReverse /blog  http://blog.domain.com
</VirtualHost>

La direttiva ProxyPass creerà un proxy inverso per i percorsi specificati, mentre la direttiva ProxyPassReverse intercetterà le intestazioni di risposta HTTP inviate attraverso questo reverse proxy e le riscriverà per farle corrispondere al server Apache.

Dopo aver salvato il file, è necessario modificare il file wp-config.php aggiungendo il seguente codice appena prima della riga che chiede di interrompere la modifica.

# ProxyPass Settings
# overrides the variables below to ensure that any
# request to /blog/* subdirectory is taken care of properly
$_SERVER['REQUEST_URI'] = '/blog' . $_SERVER['REQUEST_URI'];
$_SERVER['SCRIPT_NAME'] = '/blog' . $_SERVER['SCRIPT_NAME'];
$_SERVER['PHP_SELF'] = '/blog' . $_SERVER['PHP_SELF'];

Infine, è necessario aggiornare il database del sito WordPress per aggiungere i valori di configurazione per il link della sottodirectory /blog. È possibile farlo eseguendo la seguente query SQL:

UPDATE wp_options SET option_value = 'https://www.example.com/blog' WHERE option_name IN( 'siteurl', 'home' );

Ora dovreste essere in grado di visitare l’URL https://www.example.com/blog e far sì che il vostro sito WordPress sia ospitato nel sottodominio http://blog.domain.com senza modificare l’URL. Potete continuare a usare WordPress come al solito per navigare, scrivere, modificare e gestire il vostro sito.

Limitazioni di un Reverse Proxy

Scelta tra un CDN e un Reverse Proxy

I CDN sono una forma avanzata di reverse proxy con la maggior parte della configurazione e della manutenzione curata da terzi. Possono fornire incredibili vantaggi in termini di prestazioni al vostro sito WordPress con un piccolo sforzo da parte vostra.

I CDN non solo mettono nella cache i contenuti e li servono rapidamente agli utenti, ma riducono anche il carico sui vostri server di origine, abbassano i costi della larghezza di banda, forniscono un ulteriore livello di sicurezza, migliorano la SEO del vostro sito e vi aiutano a scalare meglio il vostro sito web.

.

Noterete che la maggior parte delle prestazioni fornite dai CDN sono le stesse di quelle fornite dai reverse proxy. Quindi, dovreste scegliere un CDN piuttosto che un reverse proxy, o viceversa?

Non c’è motivo di accontentarsi di uno solo. Se avete già installato un reverse proxy, vedrete comunque i vantaggi in termini di velocità e prestazioni derivanti dall’utilizzo di un CDN. Entrambi i loro cache layer sono ben stratificati, e se avete delle esigenze di gestione delle richieste uniche (ad esempio contenuti dinamici o ecommerce), allora potete configurarlo facilmente con alcune intestazioni personalizzate passate dal CDN o dal reverse proxy.

Volete saperne di più sui server reverse proxy? Questo articolo parla di... ✅ come funzionano, ✅ i principali vantaggi, ✅ come potete usarli per velocizzare e rendere sicuro il vostro sito WordPress.Click to Tweet

Riepilogo

WordPress è molto flessibile. Potete usarlo come blog, sito di ecommerce o anche come sistema di gestione dell’apprendimento. Nella maggior parte dei casi, è possibile personalizzare WordPress in base alle vostre esigenze.

Tuttavia, a volte potrebbe essere necessario utilizzare un dominio separato o un server secondario per ospitare un sito aggiuntivo. Come discusso in precedenza, questo può essere dovuto all’utilizzo di stack tecnologici diversi per un sito aziendale di grandi dimensioni o al lancio di un blog WordPress per un sito non WordPress preesistente.

Un reverse proxy può aiutare in entrambi i casi, aiutandovi a ottenere il massimo da WordPress senza rinunciare al sito web principale e ricominciare da capo.


Risparmia tempo e costi e massimizza le prestazioni del sito con:

  • Aiuto immediato dagli esperti dell’hosting WordPress, 24/7.
  • Integrazione di Cloudflare Enterprise.
  • Copertura globale del pubblico con 28 data center in tutto il mondo.
  • Ottimizzazione del sito con il nostro Monitoraggio delle Prestazioni delle Applicazioni integrato.

Tutto questo e molto altro, in un piano senza contratti a lungo termine, con migrazioni assistite e una garanzia di 30 giorni di rimborso. Scopri i nostri piani o contattaci per trovare il piano che fa per te.