2009-07-10 41 views
7

Ho 2 server. Un proxy inverso sul Web e uno su un collegamento privato che serve WebDAV.WebDAV dietro un proxy inverso

I server di cabine sono apache httpd v2.

sul proxy che ho:

 
    ProxyRequests Off 

    <Proxy *> 
     Order deny,allow 
     Allow from all 
    </Proxy> 

    ProxyPass   /repo/ http : //share.local/repo/ 
    ProxyPassReverse /repo/ http : //share.local/repo/ 

Sul server DAV ho:

 
<Location /repo/> 
    DAV on 
    Order allow,deny 
    allow from all 
</Location> 

Il proxy inverso si accede tramite https e il server privato si accede tramite http. E qui sta il problema!

I comandi di sola lettura funzionano correttamente. Ma quando voglio spostare qualcosa ottengo 502 Bad gateway. La ragione di questo è il proxy inverso che non riscrive l'url all'interno della richiesta dav completa.

L'URL di origine si trova all'interno dell'intestazione e viene correttamente trasformato in http://share.local/file1. L'URL di destinazione è all'interno di qualche frammento XML che non capisco e rimane https://example.com/file1 :(

C'è un modo standard per lasciare che l'apache correttamente trasformare la richiesta?

Grazie per il vostro sforzo.

+0

overflow dello stack ha detto che posso solo postare un url :(così ho aggiunto spazi.Nei miei file di configurazione originali gli URL sono corretti ovviamente –

risposta

9

Hmm , trovato la risposta sempre lo stesso :)

ho aggiunto:.

 
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so 

RequestHeader edit Destination ^https http early 

e ha funzionato. Non so se questo ha degli svantaggi. Vedrò.

+0

Suoni buoni Forse questa dovrebbe essere la configurazione di default quindi. –

2

L'URL di destinazione non deve essere in XML ma nell'intestazione "Destinazione", come già notato. Forse stavi osservando la risposta all'errore ...

In generale, questo problema andrebbe via quando client e server implementano WebDAV livello 3 (come definito in RFC4918), che consente all'intestazione di destinazione di essere solo un percorso relativo.