Mi rispondo da solo, visto che credo di aver trovato la soluzione. Anzi più di una. IL CASO Incominciamo riassumendo il problema (in modo, spero, più chiaro). In ufficio ho un piccolo server web connesso alla rete interna che risponde all'URL www.ditta.com(192.168.1.x). Su questo serve sono presenti alcune pagine e dovrebbe essere, dal punto di vista dell'impiegato, il punto di riferimento. La ditta ha anche un proprio sito gestito da terzi che risponde all'URL www.ditta.com(11.22.33.44). Notare che il nome di dominio è lo stesso, ma l'indirizzo IP è diverso. Il sito è in virtual host su web.hosting.com(11.22.33.44). L'OBIETTIVO L'obiettivo è avere una sottodirectory www.ditta.com(192.168.1.x)/site/ che visualizzi il sito www.ditta.com(11.22.33.44). IL PROBLEMA Il problema principale è che c'è un conflitto nei nomi. Ci sono infatti due serve con lo stesso nome di dominio, ma con due indirizzi IP differenti. SOLUZIONE 1 La prima soluzione è semplice quanto scomoda: fare una copia mirror del sito. È scomoda perché il sito non è aggiornato automaticamente. Ma è semplice: basta infatti appoggiarsi ad un proxy pubblico esterno (<http://www.publicproxsyservers.com/>, mi sembra) per avere l'indirizzo www.ditta.com risolto come 11.22.33.44 per fare il mirror del sito: http_proxy="http://55.66.77.88:8080/" wget --mirror http://www.ditta.com/ SOLUZIONE 2 Il server Apache in uso (ver. 1.3.x) possiede delle capacità di proxy. Sfruttando ancora il trucco di chiedere la pagina ad un proxy esterno, è possibile avere le pagine aggiornate in tempo reale sotto la directory /site/ come desiderato. È necessario, però, che i link contenuti all'interno della pagina siano riscritti da /path/to/page.html a /site/path/to/page.html (il sito gestito da terzi ha, infatti, dei link assoluti, sobh!). Per questo è necessario il modulo mod_proxy_html disponibile solo con Apache 2.x. === /etc/apache/httpd.conf ============================================= # Requests are force to go through the proxy module below RewriteEngine On RewriteRule ^/site/?(.*) http://www.ditta.com/$1 [P] ProxyRequests On ProxyVia On # http://www.publicproxyservers.com/ ProxyRemote http://www.ditta.com/ http://217.58.160.194:3128 ======================================================================== SOLUZIONE 3 Il fatto di avere Apache 1.3.x e di non poter riscrivere i link relativi contenuti all'interno delle pagine, cosa che mi sembra anche pesante e macchinosa, nonostante sia raro che una ditta voglia visitare il proprio sito (vi capita mai di telefonarvi?), mi ha fatto propendere per un'altra soluzione: invece di porre tutto sotto una directory www.ditta.com(192.168.1.x)/site/, avere un mio host virtuale site.ditta.com(192.168.1.x). === /etc/apache/httpd.conf ============================================= # Catch-all vhost <VirtualHost *> ServerName www.ditta.com ServerAlias ditta.com </VirtualHost> <VirtualHost *> ServerName site.ditta.com # Requests are force to go through the proxy module below RewriteEngine On RewriteRule ^/?(.*) http://www.ditta.com/$1 [P] ProxyRequests On ProxyVia On # http://www.publicproxyservers.com/ ProxyRemote http://www.ditta.com/ http://217.58.160.194:3128 </VirtualHost> ======================================================================== SOLUZIONE 4 Ma a questo punto, perché far funzionare un server web come proxy, visto che un proxy installato ce l'ho già (leggi Squid)? In questo modo evito anche di dovermi appoggiare ad un proxy pubblico esterno. Quest'ultima soluzione (che è quella che alla fine ho addottato), mi è venuta in mente perché ho compreso (dalle pagine di documentazione di Apache) come funziona la virtualizzazione di un host. In parole povere, quando una richiesta viene spedita al server web.hosting.com , ma l'header della richiesta HTTP contiene il campo "Host: www.ditta.com", il server capisce che la pagina richiesta deve essere presa dallo spazio dell'host virtualizzato www.ditta.com. Con le ACL di squid ed i comandi header_access e header_replace e possibile modificare/aggiungere il campo "Host:" da "site.ditta.com" (valore impostato dal browser dell'utente) a "www.ditta.com". Ed il gioco è fatto. === /etc/bind/db.ditta.com ============================================= site CNAME web.hosting.com. ======================================================================== === /etc/squid.conf ==================================================== acl local-servers dstdomain .ditta.com acl local-external dst site.ditta.com always_direct deny local-external always_direct allow local-servers header_access Host deny local-external header_replace Host www.ditta.com ======================================================================== Spero di aver fatto cosa gradita a riassumere qui le mie considerazioni e soluzioni. -- email: lorenzo.cappelletti@xxxxxxxx Jabber: lolo@xxxxxxxx Fingerprint: 8CDD 3408 53B2 6122 99DA EE37 1523 68FC D906 4C08 -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx