Un server proxy è un sistema o un applicazione che funge da intermediario tra un client (come ad esempio una Web App) ed Internet, disaccoppiando l'accesso al Web dal browser. Spesso questa soluzione viene utilizzata in ambito lavorative per evitare l'accesso a determinati siti Internet durante l'orario lavorativo.

Tuttavia essa può essere adottata anche per memorizzare una copia locale degli oggetti web richiesti in modo da poterli fornire nuovamente, senza effettuare altri accessi ai server di destinazione e dunque senza una connessione stabile. Tale soluzione si chiama HTTP caching proxy.

Uno dei tool più gettonati per realizzare un server proxy è squid che si trova anche nei repository di Ubuntu:

sudo apt-get -y install squid

Sulle distribuzioni Linux il file di configurazione di squid si trova in /etc/squid. Apriamo questo file e andiamo a modificare alcuni valori:

sudo nano /etc/squid/squid.conf

A partire da esso possiamo decidere quanto spazio concedere ai file da scaricare in cache, andiamo ad impostare ad esempio 1GB:

cache_dir ufs /usr/local/var/cache/squid 1024 16 256

Poi impostiamo il server proxy per poter essere usato solo in locale:

# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager

Quindi facciamo in modo di consentire l'accesso a localhost al cache manager:

cachemgr_passwd none all

Fatto questo salviamo il file e riavviamo squid:

systemctl restart squid

Adesso impostiamo il nostro browser per utilizzare il server proxy. A seconda del browser le impostazioni possono cambiare, ma di solito basterà settare la porta corretta e l'indirizzo del server proxy (in questo caso localhost) che abbiamo intenzione di utilizzare.

Fatto questo eseguiamo qualche test con la nostra Web application in modo da far scaricare in cache i dati che ci servono. Una volta che abbiamo finito i test possiamo impostare il server proxy per far si che funzioni in modalità offline e, dunque, vada sempre a sfruttare i dati scaricati in cache. Per fare questo è possibile usare il management client di squid chiamato squidclient:

squidclient mgr:offline_toggle

Con quest'ultimo comando abbiamo impostato la modalità offline e siamo pronti per realizzare la nostra dimostrazione anche in un ambiente senza connessione.

Via Doug Bell

CommentaDi' la tua

Il tuo indirizzo email non sarà mostrato pubblicamente. I campi obbligatori sono contrassegnati da *