Proxy con Apache

Il server proxy è da considerarsi come un step intermedio fra il client ed il server remoto, quando viene utilizzato non si ha il passaggio diretto delle informazioni fra server e client ma è il proxy a gestire la comunicazione fra i due.
Gli obiettivi che si vogliono perseguire con la funzionalità del proxy sono:
- Caching, ovvero le informazioni richieste del client vengono messe in una cache del proxy e restituite in un secondo momento se le stesse informazioni vengono richieste, senza scaricare di nuovo i dati dal server remoto. Quindi si ha il vantaggio di aumentare la velocità e ridurre la quantità di banda utilizzata.
- Sicurezza. Client e server sono logicamente isolati, quindi il proxy può fungere anche come barriera per il traffico indesiderato.

La funzionalità principale di un proxy è quella di effettuare relay e caching delle richieste provenienti dai vari client in entrambe le direzioni ovvero FORWARD e REVERSE.

Per FORWARD proxy si intende quel proxy che fa da relay per un client della LAN interna ed esegue il caching delle pagine richieste, limitando così la banda uscente ed aumentando la velocità di trasferimento.

Per REVERSE proxy si intende quel proxy che esegue il relay di un client esterno verso un server interno, riducendo cosi il carico sul server, soprattutto quando deve generare pagine dinamiche.

La funzionalità di Proxy su Apache è gestita dal modulo mod_proxy e viene attivata o disattivata tramite la direttiva ProxyRequests a livello di server configuration:
ProxyRequests on/off

Tale direttiva viene ereditata dai singoli VirtualHost se viene attivata a livello di server configuration, trasformando cosi tutti i VirtualHost in tanti proxy.

Curiosa, ma non funzionale, è la possibilità di configurare un proxy per collegarsi a siti erogati dallo stesso server web.
E' possibile definire cosa va proxato:
<Directory proxy:[protocol]:[URL] >
</Directory>

Controllo sugli accessi al proxy
<Directory proxy:*>
Order Deny,Allow
Deny from all
Allow from yournetwork.example.com
</Directory>


Oltre ad avere la possibilità di bloccare le richieste effettuate al proxy è possibile bloccare il relay delle richieste da parte del proxy per alcuni domini o ip, tramite la direttiva ProxyBlock:
ProxyBlock [dominio] [ip] [parola]
Da evidenziare che basta una parola per bloccare tutti i domini che contengono quella parola:
In questo caso non verrà eseguito alcun relay per il dominio www.dominio.it e per tutti i domini contenenti la parola pippo
ProxyBlock www.dominio.it pippo

Di seguito sono riportate alcune direttive utili per completare la configurazione del proxy server:
ProxyPass Sintassi: ProxyPass path url
Converte una richiesta al server locale ad un richiesta ad un proxy:
ProxyPass /images/ http://images.domain.com
Significa che se la URL richiesta è images/ viene convertita in una proxy request a http://images.domain.com

ProxyRemote Sintassi: ProxyRemote match remote-server
Questa direttiva permette di definire un proxy remoto, che verrà contattato ad ogni URL matching:
ProxyRemote * http://proxy.remoteserver.com:8080
In questo caso tutte le richieste vengono forwardate al proxy server remoto

NoProxy Sintassi: NoProxy Domain|SubNet|IpAddr|Hostname[Domain|SubNet|IpAddr|Hostname] ...
La direttiva permette di escludere le richieste da forwardare al proxy settato tramite la direttiva ProxyRemote provenienti da host, domini, ip e reti intere:
ProxyRemote * htpp://proxy.remoteserver.com:8080
NoProxy 10.0.0

In questo caso tutte le richieste vengono forwardate al proxy server remoto tranne le richieste provenienti dalla rete 10.0.0

Privacy Policy