2009-07-10 5 views
7

У меня есть 2 сервера. Один обратный прокси-сервер в Интернете и один на частной ссылке, обслуживающей WebDAV.WebDAV за обратным прокси

Бут-серверы - apache httpd v2.

На прокси у меня есть:

 
    ProxyRequests Off 

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

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

На сервере DAV у меня есть:

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

Обратный прокси доступ через https и частный сервер доступен через http. И есть проблема!

Только для чтения команды работают нормально. Но когда я хочу что-то переместить, я получаю 502 Bad gateway. Причина этого - обратный прокси-сервер, не переписывающий URL-адрес внутри расширенного запроса dav.

URL-адрес источника находится внутри заголовка и правильно преобразован в http://share.local/file1. URL-адрес назначения находится внутри некоторого фрагмента XML я не понимаю и остается https://example.com/file1 :(

Есть стандартный способ позволить апач правильно преобразовать запрос?

Спасибо за ваши усилия.

+0

stack overflow сказал, что могу опубликовать только один url :(поэтому я добавил пробелы. В моих исходных файлах конфигурации, конечно, правильные URL-адреса. – 2009-07-10 16:55:51

ответ

9

Хмм , нашел ответ Всегда же :)

Я добавил:.

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

RequestHeader edit Destination ^https http early 

и ему rked. Я не знаю, есть ли у этого недостатки. Я посмотрю.

+0

Звучит неплохо. Может быть, это должна быть конфигурация по умолчанию. –

2

Целевой URL не должен находиться в XML, но в заголовке «Назначение», как вы уже заметили. Возможно, вы искали ответ об ошибке ...

В общем, эта проблема исчезнет, ​​когда клиенты и серверы будут реализовывать уровень 3 WebDAV (как определено в RFC4918), что позволяет заголовку назначения быть только относительным путем.