|
Made in |
DESCRIPTION | Proxy con Apache | Live Discussion - Skill: 4- ADVANCED |
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] > Controllo sugli accessi al proxy <Directory proxy:*> 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 In questo caso tutte le richieste vengono forwardate al proxy server remoto tranne le richieste provenienti dalla rete 10.0.0
|
DESCRIPTION | Gestione della cache con mod_proxy | Live Discussion - Skill: 3- INTERMEDIATE |
La funzionalità di caching del proxy server di Apache non è abilitata di default ma occorre settare la direttiva CacheRoot, ovvero la direttiva che indica la directory dove fare lo store della cache. | ||||
CacheRoot /usr/local/apache/proxy Altre direttive invece servono per definire i paramtri di mantenimento della cache: CacheDirLevels - Direttiva che permette di settare il numero massimo di livelli per le subdir nella cache: CacheDirLevels 7 CacheDirLenght - Indica il numero massimo di caratteri di una subdir della cache: CacheDirLength 1 CacheSize - Indica lo spazio massimo su disco da riservare alla cache. Il valore è espresso in Kb: CacheSize 1024 CachegcInterval - Indica l'intervallo in ore in cui il server Apache eseguirà un check per verificare che lo spazio su disco occopato sia minore da quello settato tramite la direttiva CacheSize: CachegcInterval 1.5 [1.5 = 90 min] CacheMaxExpires - Indica il valore massimo in ore della validità della cache: CacheMaxExpires 24 CacheLastModifiedFactor - Direttiva che permette di stabilire expire date di un documento nel caso in cui il server HTTP originario non l'abbia formita, tramite la formula: expiry-period = time-since-last-modification * factor: CacheLastModifiedFactor 0.1 In questo caso significa che se il documento è stato modificato 20 ore fa, l'expire date assegnatogli sarà di 2 ore: 20*0.1 = 2 ore. CacheDefaultExpire - Se il documento richiesto è stato reperito tramite un protocollo che non supporta l'expire-date, gli verrà assegnato il valore (in ore) di default settato tramite questa direttiva: CacheDefaultExpire 1 CacheForceCompletion - Valore che indica la soglia in percentuale per cui anche un risorsa non completamente "trasferita" verrà eseguito il caching: CacheForceCompletion 75 Il valore deve essere compreso fra 0 e 100. (Tra 60 e 90 quello raccomandato) 0 è il valore di default, con 100 il documento verrà messo in cache solo se il transfer sarà completo. NoCache - Direttiva che permette di elencare parole, domini e host (separati da uno spazio) per i quali non verrà attivata la funzione di cache: NoCache local.dominio.it intranet.com dynamix.edu |
DESCRIPTION | Introduzione a mod_bandwidth per il traffic shaping su Apache | Live Discussion - Skill: 3- INTERMEDIATE |
Mod_bandwidth è un modulo non incluso nei sorgenti base di Apache che può essere scaricato dall'archivio dei moduli sviluppati da terze parti di apache. | ||||
Lo scopo primario di questo modulo è quello di poter controllare la banda in uscita al secondo, limitando il traffico secondo vari criteri come il client remoto, la dimensione del file richiesto o il container specificato (virtual host, directory ecc). La direttiva per l'attivazione di questo modulo è BandWidthModule e le direttive per la configurazione dei limiti devono essere contenuti in un container. - Attivazione del modulo BandWidthModule on - Limita la banda a seconda dell'IP del client Syntassi: BandWidth [ip|host] [rate] Esempio: <Directory /> Le dimensioni espresse sono interpretate in Kb. Quando si specifica "0" si esclude qualsiasi tipo di limiti - Limita la banda a seconda delle dimensioni dei file Sintassi: LargeFileLimit [filesize] [rate] Esempio per una configurazione che non limita la banda per file più piccoli di 512Kb, la limita a 4096kb per i file di dimensione compresa tra 512 e 1023 kb, e la limita a 2048Kb per invece per i file di dimensione 1024 o maggiore: <Directory /> Le dimensione espresse sono interpretate in Kb. MinBandWidth E' la diretiva che permette di settare la banda minima garantita per client. Se si setta un limite di 4k per una risorsa, questa banda verrà shareata per tutti i client che richiederanno questa risorsa, con questa direttiva viene fissato il valore minimo. MinBandWidht All 4096 BandWidthPulse Abilita un modo alternativo dell'invio dei pacchetti, ovvero a seconda dell'intervallo fissato in microsecondi invia pacchetti con qualsiasi dimensione BandWidthPulse 10000
|
DESCRIPTION | Proxy chain: gestione dell'header via: | Live Discussion - Skill: 4- ADVANCED |
Il protocollo HTTP/1.1 definisce l'header "via" che viene aggiunto dal proxy server in automatico a tutte le risorse richieste per indicare la route dalla destinazione della richiesta al client. | ||
Ammettiamo che un client richieda una risorsa attraverso dei proxy server A, B ed infine C, quest'ultimo aggiungerà al pacchetto di ritorno al client l'header via che indica la strada da percorrere, in questo caso i proxy server C,B ed infine A. Si può gestire questa funzionalità tramite la direttiva ProxyVia Il proxy server non aggiunge l'header, ma permette il permette l'esistenza dell'header in pacchetti ricevuti da altri proxy. Settaggio di default: ProxyVia off |
TIPS | Gestione errori e ServerSignature | Live Discussion - Skill: 3- INTERMEDIATE |
Quando un client riceve un messaggio di errore generato in modo dinamicamente, causato da una richiesta effettuata tramite un server proxy o una catena di proxy, si possono avere difficoltà a capire dove si è generato l'errore. | ||
Tramite la direttiva ServerSignature è possibile aggiungere ad ogni pagina di errore un footer contenente informazioni sul server. Questo footer viene aggiunto in modo automatico per tutti i documenti generati dal proxy server: Il proxy server non fa nessun tipo di append ServerSignature off Il proxy server aggiunge un footer contenente il server name e la versione del server ServerSignature on Il proxy server aggiunge un footer come nel caso precedente aggiungendo l'indirizzo email settato tramite la direttiva ServerAdmin ServerSignature email Questa direttiva è valida per qualunque pagina di errore generata da Apache, anche quando funge regolarmente da web server e non come proxy. |
TIPS | Effetto in wildcards in ProxyBlock & Nocache | Live Discussion - Skill: 3- INTERMEDIATE |
Se con le direttive ProxyBlock e Nocache viene utilizzato il carattere "*" acquistano un valore determinante per la funzionalità del proxy server. | ||
Esegue un blocco totale dei relay delle richieste:ProxyBlock * La funzionalità di caching non viene abilitata per alcun tipo di risorsa richiesta: Nocache * |
TIPS | Tunneling con mod_proxy | Live Discussion - Skill: 4- ADVANCED |
Il modulo mod_proxy può accettare anche le richieste di connessione tramite il protocollo HTTP (HTTP Connect) per accedere o meglio connettersi un server remoto con protocolli differenti da FTP e HTTP. | ||
Quando il proxy server riceve una richiesta di HTTP connect confronta le porte in uso con quelle disponibili, se la porta è disponibile allora il proxy server esegue la connessione sul server remoto alla porta specificata e mantiene la connessione tra il client e il server remoto facendo da relay per i pacchetti. Di default Apache accetta tutte le richieste di Connect per le porte 443(HTTPS) e 563(SNEWS), ma tramite la direttiva AllowCONNECT è possibile customizzare la lista delle porte: AllowCONNECT 443 563 23 |
TIPS | Minimal Tuning di Apache proxy | Live Discussion - Skill: 3- INTERMEDIATE |
Tramite la direttiva ProxyReceiveBufferSize è possibile settare un Network buffer per i protocolli HTTP e FTP. Se settato a zero Apache utilizza il valore settato dall'OS. |
||
ProxyReceiveBufferSize 4096 |
Openskills LiveBook: Apache - Installazione e configurazione | (C)oresis Srl | GNU FDL licence | Generated: 23/10/2003 |